我有一个表单,用户可以继续将项目添加到列表中.当他们提交此页面时,我想验证此列表中是否包含其中的项目(而不是单个项目,因为它们已经过验证).每个项目都被添加到表格中的新行,其中TR具有"action"的额外属性...所以它看起来像:
<tr action="whatever">...</tr>
Run Code Online (Sandbox Code Playgroud)
我试图做的是添加一个自定义的addMethod,它调用一个函数,该函数将操作的行数计为属性:
$("#tableID").find("tr[action]").length
Run Code Online (Sandbox Code Playgroud)
如果该长度大于0,则返回true,否则返回false.
这在验证器调用之外工作正常但由于某种原因它完全跳过它.
我真的可以使用一个示例或一些洞察如何使它验证此规则,即使它不是一个特定的表单元素.
按比例缩小的代码:
*请注意,我已经设置了默认消息,而不是.
$.validator.addMethod("validProductList", function (value, element) {
return this.optional(element) || validateProductList();
}, "You have no products in your list");
$("#processForm").click(function () {
$("#pageForm").validate({
submitHandler: function () {
$("#errors").hide();
//processPage();
},
rules: {
//other rules,
validProductList: true
}
});
});
function validateProductList() {
var isValid = false;
var useList = $("#tblAddedProducts").find("tr[action]").length;
if (useList > 0) { isValid = true; }
return isValid;
}
Run Code Online (Sandbox Code Playgroud) 我一直试图找到一篇不错的文章或片段来解释微软在MVC3中包含的JS(Validate和Ajax)文件的区别,我找不到任何东西.
是否会有人友好地解释这些差异以及它们应该如何使用(例如,一个人背驮着另一个人,而不是用于X的原因,等等):
添加到此 - 基本上为什么我会使用jquery.validate与不显眼或MVC验证.或者与jquery.validate等相关的目的是什么.同样对于Ajax文件.
非常感谢提前:)