ASP.Net CheckBoxList 的 jQuery 验证

标签 jquery asp.net jquery-validate checkboxlist

在开始之前,我想声明一下,ASP.NET 为 CheckBoxLists 创建的代码可能是我见过的最糟糕的事情。

无论如何,

我正在使用 jQuery 验证插件来验证我的 ASP.net 表单。需要验证一些复选框。这些是由 CheckBoxList 控件生成的。

<asp:CheckBoxList ID="CBContext" runat="server" RepeatColumns="2" 
              DataSourceID="sqlLibraryEnquiries" DataTextField="value" DataValueField="value" name="topic">
</asp:CheckBoxList>

该控件产生以下令人厌恶的 xHTML

<table id="MainContent_CBContext" name="topic">
    <tr>
        <td>
          <input id="MainContent_CBContext_0" type="checkbox" name="ctl00$MainContent$CBContext$0" value="Business" /><label for="MainContent_CBContext_0">Business</label>
        </td>
        <td>
          <input id="MainContent_CBContext_2" type="checkbox" name="ctl00$MainContent$CBContext$2" value="Legal" /><label for="MainContent_CBContext_2">Legal</label>
        </td>
    </tr>
    <tr>
        <td>
           <input id="MainContent_CBContext_1" type="checkbox" name="ctl00$MainContent$CBContext$1" value="Business Development" /><label for="MainContent_CBContext_1">Business Development</label>
        </td>
        <td>
           <input id="MainContent_CBContext_3" type="checkbox" name="ctl00$MainContent$CBContext$3" value="Library" /><label for="MainContent_CBContext_3">Library</label>
        </td>
    </tr>
</table>

我遇到的问题实际上是让 jQuery Validator 插件挂接到复选框列表中。在我的所有其他字段的规则部分中,我可以通过它们的名称找到它们 例如 ctl00$MainContent$tbActions: 但复选框都有不同的名称。

cb_selectone 规则未触发,因为我尝试验证的对象从未找到。 我尝试过以下标识符。 CBContext、ctl00$MainContent$CBContext、MainContent_CBContext 和复选框。

$("#Form1").validate({

     rules: {
     //WHAT GOES HERE???? --------->>    CBContext or ctl00$MainContent$CBContext or MainContent_CBContext or checkboxes all don't work: {
            cb_selectone: true
         }
      }
});

感谢您的帮助。

SM

最佳答案

我在JAVASCRIPT方法中做了一个小调整:

$.validator.addMethod('cb_selectone',
    function (value) {
        if ($('[id$=CBContext] input:checked').length > 0) {
            return true;
        }
        else
        {
            return false;
        }
    }, ""
);

关于ASP.Net CheckBoxList 的 jQuery 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9176801/

相关文章:

.net - 将单个元素锁定在静态集合中?

javascript - 如何在asp.net 中编写调用asp.net 按钮click() 事件的javascript 函数?

c# - MVC 2 中使用 JQuery 的验证摘要

javascript - e.preventdefault 提交时触发的提交不起作用

jquery - 如何使用 jquery.validate.min.js 验证具有数组类型名称的输入字段

javascript - Zurb Foundation topbar 菜单栏下拉菜单不起作用(手机尺寸一)

jQuery 拖放自动对齐

jquery - HTML 设置激活并具有不同的背景颜色

c# - FormsAuthenticationTicket 过期太早

javascript - 无法让自动完成功能与 bootstrap 和 php codeigniter 一起使用