2
我想獲得一些客戶端驗證工作,以防止發生表單提交如果一個對象沒有價值。我已經在這一段時間了,但不能得到滿意的解決方案。防止Ajax表單提交沒有內容
我的表單提交的js看起來是這樣的:
$(document).ready(function() {
$('#localUsersDateTime').val(setLocalDateTime());
$('#createentry').ajaxForm({
beforeSubmit: checkTextObjHasValue($('#newentry'), 'You need to add some text.'),
dataType: 'json',
success: function (result) {
$('#entries-list').prepend('<li>' + $('#newentry').val() + '</li>');
$('#newentry').val('').blur();
},
error: function (xhr)
{
try {
var json = $.parseJSON(xhr.responseText);
alert(json.errorMessage);
} catch (e) {
alert('Oops, Something very bad has happened');
}
}
});
return false;
});
然而,當頁面加載運行我在beforeSubmit指定checkTextObjHasValue()函數,以便檢查僅需要在實際的表單提交執行。
function checkTextObjHasValue(obj, message) {
if ($(obj).val() === '') {
alert(message);
return false;
}
return true;
}
我怎樣才能防止這種beforeSubmit:回調只從加載頁面時,只有在實際的表單提交執行正在執行?
但是,該文檔是誤導http://malsup.com/jquery/form/#ajaxForm – hop 2013-05-06 19:27:21
@hop你爲什麼這麼說?該示例顯示了一個函數引用。如果有一個函數被調用(如在OP中),那麼我會理解混淆。另外,http://malsup.com/jquery/form/#options-object表示'beforeSubmit'的「回調函數」。當你打電話時,函數不會奇蹟般地返回函數。我不確定你的觀點 - 如果文檔以任何方式誤導,那不是我的錯 – Ian 2013-05-06 19:29:09
我從來不認爲它是你的錯。只是想學習,我很困惑。從你的解釋,我會再看看文檔。 – hop 2013-05-06 19:33:21