我正在尝试让我的代码放入必需的字段验证器,因此至少会从三个中选择一个复选框。 这是我的代码:
<div class="left marginT5 marginR10">
<input type="checkbox" id="chk1" value="option1" runat="server" class="styled" /> Choice1
</div>
<div class="left marginT5 marginR10">
<input type="checkbox" id="chk2" value="option2" runat="server" class="styled" /> Choice2
</div>
<div class="left marginT5 marginR10">
<input type="checkbox" id="chk3" value="option3" runat="server" class="styled" /> Choice3
</div>
我知道我可以使用checkboxlist,但由于设计问题,我只能使用单个复选框控件。 知道我怎么能强迫&#34;强迫&#34;用户选择至少一个复选框? 在此先感谢Laziale
答案 0 :(得分:3)
您可以尝试使用自定义验证程序。这应该让你开始:
ASPX
<asp:CustomValidator ID="CustomValidator1" runat="server"
EnableClientScript="true"
ErrorMessage="Please choose at least one"
ClientValidationFunction="ValidateRadioButtons">
</asp:CustomValidator>
的JavaScript / jQuery的
function ValidateRadioButtons(source, args) {
var options = $('.styled');
for (var i = 0; i < options.length; i++) {
if (options[i].checked) {
args.IsValid = true;
return false;
}
}
args.IsValid = false;
}
您也应该进行服务器端验证,以防javascript被禁用。
答案 1 :(得分:1)
您已使用jquery-validate
对此进行了标记,那么我可以假设您正在使用jQuery Validate插件吗?如果是这样,您必须在name
字段中使用input
属性。如果组中的所有复选框元素都具有相同的name
,您将获得所请求的行为 默认 。
DEMO:http://jsfiddle.net/q3yrd/
<input type="checkbox" name="chk" id="chk1" value="option1" runat="server" class="styled" />
<input type="checkbox" name="chk" id="chk2" value="option2" runat="server" class="styled" />
<input type="checkbox" name="chk" id="chk3" value="option3" runat="server" class="styled" />
答案 2 :(得分:0)
由于验证器是“每个控件”,因此没有一个单一的开箱即用解决方案。你必须自己实现它。它应该很容易,就像添加必需的字段验证器一样简单......
最好的方法通常是在回复时在javascript(客户端)和服务器端验证,但根据您的应用程序,其中一个或两个都可以工作。