0

我有一个巨大的表格,我想在不同的步骤中拆分,但我需要在进入下一步之前验证当前步骤中的字段。

例如:我的表单有 40 个字段,它们分为 4 个步骤(每个步骤 10 个字段)。在 HTML 中,40 个在同一页面中,但使用 jQuery,我只显示前 10 个和一个下一步按钮,第四页包含“提交”按钮。在进行下一步之前,我需要一种方法来调用这十个字段的验证。

有没有办法做到这一点?

问候。

4

4 回答 4

1

假设您使用默认的 mvc3 非侵入式验证,您可以使用循环和单元素验证对所需元素调用验证

于 2011-05-13T13:16:45.867 回答
0

您可以使用jQuery Validation 插件。这有一个在验证时忽略元素的选项。因此,例如,您可以用一个类标记所有未显示(并且不需要验证)的字段。例如,要忽略所有表单元素,class="ignore"您可以这样做:

$("#myform").validate({
   ignore: ".ignore"
})
于 2011-05-13T13:17:59.117 回答
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();
}
于 2011-05-13T17:39:23.520 回答
0

尽管通过使用属性标记元素来忽略元素class="ignore"有效,但 MVC 3 默认使用 jQuery 的验证插件,并且plug-in will not validate disabled fields. 除了可见的 10 个字段之外,您隐藏元素的代码,您也可以禁用这些元素并且它们不会被验证(请注意,这些禁用的字段也不会发布到服务器)。

例如

$('input').attr('disabled', 'disabled');
于 2011-05-13T15:48:58.143 回答