我有一个很大的形式,我想分成不同的步骤,但我需要在进入下一步之前验证当前步骤中的字段。
例如:我的表格有40个字段,它们分为4个步骤(每个10个字段)。在HTML中,40位于同一页面,但是使用jQuery我只显示前10个和下一个按钮,第四个页面包含“提交”按钮。在进入下一步之前,我需要一种方法来调用这十个字段的验证。
有没有办法实现这个目标?
问候。
答案 0 :(得分:1)
假设你使用默认的mvc3 unobtrusive验证,你可以使用循环和Single Element Validation
调用所需元素的验证答案 1 :(得分:0)
您可以使用jQuery Validation plug-in。这有一个option在验证时忽略元素。例如,您可以使用类标记所有未显示(并且不需要验证)的字段。例如,要忽略所有使用class="ignore"
的表单元素,您需要执行此操作:
$("#myform").validate({
ignore: ".ignore"
})
答案 2 :(得分:0)
虽然通过使用属性class="ignore"
标记它们来忽略元素,但MVC 3默认使用jQuery的验证插件和plug-in will not validate disabled fields
。除了可见的10个字段之外,您隐藏元素的代码,您也可以禁用这些元素,并且不会验证它们(并注意那些禁用的字段也不会发布到服务器)。
e.g。
$('input').attr('disabled', 'disabled');
答案 3 :(得分:0)
如果您使用按钮在每个步骤之间移动,则可以修改页面以为每个步骤创建单独的表单。然后,您可以将验证限制为作为提交按钮的父级的表单,并使用“步骤”的验证来确定是否启用/显示下一步的表单。以下是一些示例代码:
$(".stepButton").live("click", function() {
if (isValid(this)) {
// code to proceed to next step
}
});
function isValid(el) {
var $thisform = $(el).parent().parent();
$thisform.validate();
return $thisform.valid();
}