我正在尝试进行一些客户端验证,以防止在对象没有价值时发生表单提交。我一直在努力解决这个问题,但无法得到令人满意的解决方案。
我的表单提交 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: 回调并且仅在实际提交表单时执行?