Jquery 如何使用ajax加载表单,验证表单,然后使用ajax提交表单?
我正在打开一个jQuery对话框,其中包含一个表单,该表单由打开对话框时触发的ajax调用加载。当用户单击OK时,我希望在使用ajax提交表单之前验证表单。 以下是分配给“确定”按钮的回调:Jquery 如何使用ajax加载表单,验证表单,然后使用ajax提交表单?,jquery,jquery-validate,unobtrusive-validation,jquery-forms-plugin,Jquery,Jquery Validate,Unobtrusive Validation,Jquery Forms Plugin,我正在打开一个jQuery对话框,其中包含一个表单,该表单由打开对话框时触发的ajax调用加载。当用户单击OK时,我希望在使用ajax提交表单之前验证表单。 以下是分配给“确定”按钮的回调: var dialogOK = function () { var $form = $(this).find("form:first"); if ($form.find("input:first").length > 0) { $form.removeData("vali
var dialogOK = function () {
var $form = $(this).find("form:first");
if ($form.find("input:first").length > 0) {
$form.removeData("validator").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse($form);
$form.validate({
submitHandler: function (form) {
alert("This alert doesn't appear");
},
invalidHandler: function (event, validator) {
alert("Neither does this one");
}
});
if ($form.valid) {
alert("form.valid says it's valid when it's not");
//$form.submit(); //when this is called the client-side
//validation works and the form is not submitted
//but when I call ajaxSubmit (forms jQuery plugin)
//the form is submitted
$form.ajaxSubmit({
success: function () {
alert("And I still need to work out how to check whether
server-side validation passed before I close the dialog");
}
});
}
}
else {
$(this).dialog("close");
}
};
我已经基于这些代码,但我无法确定在执行ajax提交时如何启动客户端验证
我正在使用jquery-1.9.1、jquery.unobtrusive-ajax、jquery.validate和jquery.form您需要检查plugin方法的值,所以您需要它
if ($form.valid())
{
// do stuff
}
不是这个
if ($form.valid)
{
// always true, as presence of the plugin method is 'truthy'
}
如果($form.valid)是“truthy”,因为它是您需要的插件方法,如果($form.valid())就是这样!如果你把它写在回信里,我会接受的