javascript - 为什么我的表单在按 Enter 或使用条形码扫描仪时提交了两次?
问题描述
我已经尝试了所有方法,似乎只有在按下回车键或使用我想使用的条形码扫描仪时才会提交两次表单。单击“提交按钮”时不会发生我。起初我以为我执行了两次查询,但事实并非如此。这是我的代码:
HTML 文件
<form id="formulario_ingreso" class="form-horizontal" onsubmit="return ingresar();" method="POST">
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<div class="controls">
<input id="codigo" type="number" name="codigo" class="form-control" placeholder="Código" autofocus>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<select class="select2 form-control" id="nombre" name="nombre">
<option value="">Nombre (Solo si no existe código)</option>
<?php
while ($row = mysqli_fetch_assoc($perfiles_query)){
echo '<option value="'.$row["id"].'">'.$row["nombres"].' '.$row["apellidos"].'</option>';
}
?>
</select>
</div>
</div>
</div>
<button type="button" class="btn btn-primary" onclick="ingresar()">Ingresar</button>
</form>
脚本文件
<script>
$("#formulario_ingreso").submit(function(e) {
e.preventDefault();
});
</script>
<script>
function ingresar(){
var codigo = $("#codigo").val();
var nombre = $("#nombre").val();
if(codigo){
$.post("evento/ingresar_asistencia.php", { codigo: codigo },
function(data) {
$('#results').html(data);
$('#formulario_ingreso')[0].reset();
});
}else if(nombre){
$.post("evento/ingresar_asistencia.php", { nombre: nombre },
function(data) {
$('#results').html(data);
$('#formulario_ingreso')[0].reset();
});
}
};
</script>
PHP文件
<?php
require_once '../../../config.php';
if(isset($_POST["codigo"])){
$codigo = $_POST["codigo"];
echo $codigo;
$asistencia_query = mysqli_query($link, "INSERT INTO asistencia (id_perfil, id_evento) VALUES (2,1) ");
}
解决方案
ingresar()
我已经尝试过您的代码,但在我的情况下,当我单击按钮时,它是一次性调用功能。
请onsubmit="return ingresar();"
从您的表单标签中删除。我认为这是造成问题的原因
推荐阅读
- vbscript - VBSCript CreateObject 变量使用不支持的自动化类型
- c# - 在 Raspberry Pi 上找不到 dotnet core 3.1.0
- python - 训练期间未加载所有训练样本
- powershell - 如何在 PowerShell 中向我的 CSV 添加列?
- r - 如何将 R 中本地作业脚本的结果附加到 Excel 文件中?
- firebase - 因为我的回报是 [{"singles": [[Object], [Object]]}]
- android - 观察变量和函数有什么区别
- angular - 使用 XPath 作为定位器时,元素不在 Angular 应用程序中
- css - CSS:显示弹性
- sql - SQL:日历表上的左连接(火花 SQL)