我使用具有單個輸入端的形式,如下所示:防止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