Jquery禁用验证问题

时间:2011-08-08 11:42:52

标签: jquery jquery-validate

我想在单击某个按钮时禁用验证某些文本框,例如,如果我有4个文本框,当我单击按钮1时,只有前2个文本框应该验证,当我单击按钮2时,只有最后2个文本框应该验证,目前所有的框都在验证,如何使用jquery启用/禁用文本框验证,验证只在UI中可见的文本框上激活,而不是隐藏的文本框,我用Google搜索它,发现了类似这样的事情:

 <script type="text/javascript">
document.getElementById("YourbuttonID").disableValidation = true;
</script>

以下是我正在使用的代码:

<script type="text/javascript">

$(document).ready(function () {
    var $startdates = $('#startDates');
    var $endDates = $('#endDates');
    var $showEvents = $('#showEvents');
    $startdates.hide();
    $endDates.hide();
    $showEvents.hide();

    $('#hide').click(function () {
        $startdates.show();
        $endDates.show();
        $('#showEvents').show();
        $('#eventdids').hide();

        $(this).hide();
        return false;

    });

    $("#hide").validate({
        ignore: "#hide"
    })

    $('#showEvents').click(function () {
        $startdates.hide();
        $endDates.hide();

        $('#eventdids').show();
        $('#hide').show();
        $(this).hide();
        return false;

    });
});
 </script>
<tr id="startDates">
        <td>
        <div class="editor-label">
            <%: Html.LabelFor(model => model.StartDate) %>
        </div>
        </td>
        <td>
        <div class="editor-field">
            <%: Html.TextBoxFor(model => model.StartDate) %>
            <%: Html.ValidationMessageFor(model => model.StartDate) %>
        </div>
        </td>
        </tr>

        <tr id="endDates">
        <td>
        <div class="editor-label">
            <%: Html.LabelFor(model => model.EndDate) %>
        </div>
        </td>
        <td>
        <div class="editor-field">
            <%: Html.TextBoxFor(model => model.EndDate) %>
            <%: Html.ValidationMessageFor(model => model.EndDate) %>
        </div>
        </td>
        </tr>
<tr id="eventdids">
        <td>
        <label>Events</label>
        </td>
        <td>
         <% foreach (var item in (SelectList)ViewData["events"]) { %>
                 <input type="checkbox" name="Name" value="<%=item.Value %>" />
                  <label for="<%=item.Value%>"><%=item.Text%></label>
                  <br />

        <% } %> 

        </td>
        <td><input type="button" name="Select" id="hide" style="width:auto" value="Select All Events" /></td>


        </tr>

        </table>
      <input type="button" name="show" id="showEvents" style="width:auto" value="Show All Events" />

        <p>
            <input type="submit" value="Create" />
        </p>

1 个答案:

答案 0 :(得分:1)

我不会使用隐藏元素+它会在服务器验证时失败 - 根据您的模型仍然需要这些字段

您必须创建一个依赖验证来处理这两种情况 这可能会对您有所帮助conditional-validation-in-asp-net-mvc-3