我正在努力使用MVC4和JQuery验证。
我们有相当数量的文本框,旁边有验证信息。
一旦他们在所有消息中输入了有效消息,消息就会全部消失。但是当我这样做时:
var valid = $('form').valid();
它总是会返回false。得到了这个(How to fire jQuery function only if form is valid)
我不知道表单有什么问题。有没有办法获取表单的错误消息?
我已经尝试连接validate()上的show错误,如下所述:
Jquery validate showerrors display name
但这从未填充任何信息。当我测试时,我把它放在每个输入框的更改上:
if ($('form').valid()) {
alert('the form is valid');
}
else if(!$('form').valid()) {
alert('the form is NOT valid');
}
但它总是返回无效。
修改
刚刚开始创建在线样本(根据webdeveloper的要求)。 Chrome隐藏了一些HTML(使用jquery选项卡控件)。所以去了IE获取源代码并验证工作。然后在FF中尝试了它并且它有效。所以它似乎只在Chrome中被打破了。
编辑2
创建了jsfiddle.net页面:http://jsfiddle.net/qN3Cn/1/
在IE中,表单将返回有效,在chrome中无效。
答案 0 :(得分:4)
可能是隐藏字段的错误,您可以在控制台中查看所有错误:
$('form').validate().errorList
答案 1 :(得分:1)
它归结为隐藏字段(hiddenfor)。我有一个日期在回发模型的页面上隐藏。当Chrome不在美国时,Chrome不喜欢玩得很好!我最终不得不把它放在我的web.config
中 <system.web>
<globalization culture="en-GB" uiCulture="en-GB"/>
一旦我的Thread.CurrentThread.CurrentUICulture设置正确,一切都很顺利。