jQuery 验证——不验证
Posted
技术标签:
【中文标题】jQuery 验证——不验证【英文标题】:jQuery Validation -- Not validating 【发布时间】:2010-11-25 16:36:34 【问题描述】:我正在构建我的第一个 ASP.net MVC 应用程序(不是我的第一个 jQuery 和 jQuery 验证插件应用程序),并且我在使用验证插件执行客户端验证时遇到了很糟糕的事情。有谁知道使用VS 2008自带的jQuery-1.3.2.min插件有问题吗?
我的代码如下:
var v = $("#frmAccount").validate(
rules:
txtAccount: minLength: 5,required: true ,
txtFName: "required",
txtLName: "required"
,
message:
txtAccount:
required: "Account Number is required.",
minLength: jQuery.format("Account Number must be 0 or more charaters.")
,
txtFName: "First Name is required.",
txtLName: "Last Name is required.",
); //validate
$("#cmd").click(function()
if (v.form())
$("#frmAccount").submit();
);
.......................
当我尝试提交空白表单时,它会在帐户、fname 和 lname 字段旁边返回默认的“此字段是必需的”,但如果我在字段中输入任何数据,我会得到各种结果。
我尝试只执行基本的验证功能(不将验证对象返回给 v 变量),但这会产生类似的结果。
我只是在这里忽略了一些愚蠢的事情吗?
【问题讨论】:
【参考方案1】:Adrian Grigore,感谢您的快速回复。但是,我认为您可能忽略了上面发布的代码或其他内容。 也许您正忙于尝试插入自己的博客或其他内容。 IDK。
真正的问题如下:
*在上面的代码中,“message”应该是“messages” *另外,我犯了(我认为)基本的 MS 编程背景错误......我将工作 minLength 和(当然)在 jQuery 中它应该是 minlength
阿德里安,祝你博客好运!
【讨论】:
另外(而且很奇怪),我通过在 IE7 中运行这个 html 和 javascript 并启用脚本调试选项和 IE 开发人员工具栏发现了这个错误。我在 FF/Firebug 中浪费了一天的开始测试。现在我完全糊涂了,因为过去 firebug 救了我很多次,而 IE 在试图找到这些错误时失败了……我只是想我会传递这个花絮。 嗯,这就是您在客户端手动编码验证逻辑时所犯的错误。这就是我不想这样做的原因。很抱歉你觉得我只是想推我的博客,如果你不喜欢我的,xVal 上还有很多其他文章。但我仍然真心认为最好使用 xVal 之类的框架进行客户端验证。 Adrian,在大多数情况下(以及在我过去),我会完全同意,但在这种情况下,我只需要根据模型检查单个值,然后将其他值传递给供应商应用。此外,当我们可以将其传递给客户端并且我们拥有像 jQuery 和验证插件这样的很棒的工具时,为什么我们还要浪费我们(作为开发人员)的带宽来验证一些字段?虽然我很喜欢您的博客文章中包含的洞察力,但我发现它对于我正在尝试实施的解决方案来说有点过头了,实际上,ASP.net MVC 也过头了。我只是想和它一起玩。【参考方案2】:jquery.validate 确实适用于 jquery 1.32。 “各种结果”是什么意思?
无论如何,由于您使用的是 ASP.NET MVC,我建议您不要手动编写客户端验证代码。如果您改用 xVal 和 DataAnnoationModelBinder,它会更容易、更稳定且可完全测试。在client-side validation with ASP.NET MVC 上查看这篇文章。
【讨论】:
到目前为止我遇到的各种结果: - 有时只输入一个 2 位数的帐号被视为有效,并将表格发送给控制器进行处理。 - 输入帐号(如上)并提交不会产生任何验证消息,但不会提交表单(无效) - 一旦帐号字段被视为无效,一旦满足最小长度,它就不会生效。 -当表单字段在提交前都有效时,表单不提交并且不产生任何消息。 -等等。等等。这是一个asp.net MVC应用。但是模型中唯一的字段是帐号......以上是关于jQuery 验证——不验证的主要内容,如果未能解决你的问题,请参考以下文章