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