我有一個函數可以做一個簡單的驗證,如果每個輸入文本都是empyt,會彈出一個警告,程序將停止。點擊按鈕後,功能將啓動。我正準備通過事件,但不知何故event.PreventDefault()不起作用,所以仍然訪問服務器端代碼。 下面是做簡單驗證的功能。event.prevendefault()不能在具有each()函數的函數中工作
var checkRequired = function(event)
$('.box-load .requir').each(function(index,item) {
var index = $(item).data('index');
if(index === 'text') {
if ($(item).val() == "") {
$(this).focus();
alert('Please input the required parameter');
event.preventDefault();
}
}
});
}
對於觸發我用這個代碼的功能:
$(document).on('click','.box-load .btn-save', function(event) {
event.preventDefault();
checkRequired(event);
貝婁的checkRequired(),我會做一個Ajax請求。我想要的是,如果其中一個輸入文本爲空,則該事件停止。但是有了這些代碼,就無法運行。任何建議?
在此先感謝。
修改你的'checkRequired()'返回一個布爾值,然後在你的點擊處理程序中測試返回值,並且只有在Ajax工作時才執行。在'checkRequired()'內有'event.preventDefault()'沒有意義,因爲你已經在你的點擊處理程序中調用了'event.preventDefault()',而'.preventDefault()'也沒有任何關係通過停止Ajax代碼,它只會阻止點擊按鈕的默認(非JS)行爲。 – nnnnnn
看起來像你的按鈕是種提交按鈕。因此,第一個'event.preventDefault'應該可以工作,如何知道服務器端代碼是否由於表單提交而運行,那麼肯定會出現一些奇怪的現象。 –