我使用具有单个输入端的形式,如下所示:防止JS功能/表单提交的多个执行
<form action="" method="POST" id="myForm" name="myForm">
<input type="text" name="myInput" id="myInput" maxlength="9" OnKeyPress="checkMyForm();" onKeyUp="checkMyForm();" onChange="checkMyForm();" />
<button id="btnSubmit" class="btnSubmit" >Submit</button>
</form>
的JS函数检查输入,并且如果它是满意的是等待1.25秒和然后提交表格如下:
function checkMyForm() {
var input = document.getElementById("myInput");
var form = document.getElementById("myForm");
if (/* check the input here */) {
setTimeout(function() {
// submit the form
$("#myForm").submit(); }, 1250);
}
else {
// do nothing
}
}
if
语句检查输入的长度。如果我输入(7个字符) - 它执行6-7次。如果我粘贴它 - 它会执行两次。有没有办法阻止多表单提交?
我已经在地方有这样的:
$(document).ready(function() {
$("#myForm").submit(function(event) {
// disable the submit/print button
document.getElementById('btnSubmit').disabled = true;
// prevent resubmission of the form
$(this).submit(function() {
return false;
});
// prevent page refresh
event.preventDefault();
// contineu with my stuff to submit the form
$.ajax({
url: 'index.php',
type: 'post',
data: {
"myInput" : $('#myInput').val(),
},
success: function(response) {
if(!alert(response)) {
// do my thing here
}
}
});
}
}
,从实际运行PHP端代码,防止提交表单;但alert
正在触发,无论(如果粘贴,或者如果输入5-7次,则为两次)。我怎样才能防止多次提交和回复?
其中是您在输入字段中使用的checkMyForm()方法吗? – Mivaweb
我是否正确地假设'check_promisLot()'是'checkMyForm()'?你是否想在满足特殊条件时提交表格?例如。如果输入有9个字符?如果是这样,请发布条件。 – nils
是的。我的错误。 - 'value.length <7' – KingsInnerSoul