2012-08-16 171 views
3

是否有可能将自定义验证功能添加到ASP.NET CheckBox列表的jQuery验证插件?我正在使用jquery插件来验证客户端的所有控件。文本框,下拉列表等。由于某些原因,它不与Checkboxlist一起工作。在纯html中,checkboxlist成为一个带有html输入复选框的表格。我写了一个自定义函数来检查是否有任何复选框被选中并将其添加到jquery验证,但由于某种原因,该功能没有被调用。ASP.NET CheckBoxList客户端验证

jQuery.validator.addMethod('cb_selectone', function (value, element) { 

    return false; 
}, 'Please select at least one option'); 

我试着一直返回false,但仍然窗体验证成功。任何帮助将不胜感激。

+0

如果你不必使用jquery,也许这可以提供帮助。该示例是文本框,但您可以将其用于checkboxlist。 http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.customvalidator.clientvalidationfunction.aspx – 2012-08-16 02:37:33

+0

你可以发布你的HTML标记代码?或者一个例子?这可能是明显的语法错误。 – 2012-08-16 04:46:57

+0

我使用了相同的code.the习惯vaidator工作正常。其他代码有问题。对于测试,我只是返回false.It不应该在这种情况下验证,但它得到验证。 – 2012-08-16 04:48:52

回答

1

下面是一个方法,但不使用jquery.validate。

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<script type="text/javascript" src="Scripts/jquery-1.8.0.js"></script> 
<script type="text/javascript"> 
    function cb_selectone(src, args) { 
     var items = $("input[name^='cblTest']"); 
     for (i = 0; i < items.length; i++) { 
      if ($(items[i]).is(":checked")) { 
       args.IsValid = true; 
       return; 
      } 
     } 
     args.IsValid = false; 
    } 
</script> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:CheckBoxList runat="server" ID="cblTest"> 
      <asp:ListItem Text="Test A" Value="A"></asp:ListItem> 
      <asp:ListItem Text="Test B" Value="B"></asp:ListItem> 
     </asp:CheckBoxList> 
     <asp:CustomValidator ErrorMessage="Please select at least one.<br/>" ClientValidationFunction="cb_selectone" runat="server" /> 
     <asp:Button runat="server" ID="btnTest" Text="Submit" /> 
    </div> 
    </form> 
</body> 
</html> 
+0

谢谢......我以前试过这个。自定义验证器的问题是,我必须为每个需要它的控件创建一个验证器。我需要更一般的东西 – 2012-08-16 04:25:33

+0

看看这个示例,我和你有同样的问题但我解决了它。 http://stackoverflow.com/questions/11981229/custom-jquery-validation-function-not-firing – 2012-08-16 06:31:23

+0

不是正确的答案,但我写了我自己的验证框架,做了这样的事情 – 2012-08-21 22:37:58