我在我的 MVC4 项目中使用 jQuery 验证和必要的 javascript 文件(jquery-1.9.1.js、jquery.validate.min.js 和 jquery.validate.unobtrusive.min.js) 和配置。我想要做的是在提交之前验证表单。如果表单有效,将调用一个方法,然后将其提交。如果不是,则不会提交,只会显示一个警告。我已按照 Call JQuery Validate Plugin without submitting the form 上的步骤操作以及许多类似的主题,尤其是在 jQuery 官方页面上。但不知何故,在执行 Validate() 和 Valid() 方法时,我遇到了诸如 undefined 之类的错误。我认为问题与 Validate() 方法有关。我尝试了不同类型的 jquery-1.x.x.js 文件,但结果是一样的。如何使用与以下方法类似的方法验证表单?还是别的?
script type="text/javascript">
$(function () {
$("#submitbtn").click(function () {
var form = $("#myForm");
form.validate();
var isValid = form.valid();
if (isValid) { //If there is no validation error
alert('form is valid - not submitted');
}
else {
alert('form is not valid');
}
});
});
最佳答案
我发现代码运行良好,但元素的 ID 不是“myForm”,您是否尝试过确保使用表单的 ClientID 属性而不是 ID?
$(function () {
$("#submitbtn").click(function () {
var form = $('#<%# myForm.ClientID %>');
form.validate();
var isValid = form.valid();
if (isValid) { //If there is no validation error
alert('form is valid - not submitted');
}
else {
alert('form is not valid');
}
});
});
我相信 $("#myForm")
没有像您预期的那样返回元素(例如,它返回 null 或 undefined 因为 myForm 不存在)因此 form.validate( ) 将不存在。
关于javascript - jQuery Validate() 和 Valid() 方法未定义或不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19630075/