所以我有两个单选按钮,一个是'是'而另一个是'不',我有一个文本框。所有这些都是asp.net控件。如果选中“是”单选按钮,我试图在文本框中要求一个值,如果选中“否”单选按钮则不需要它。我需要使用jQuery规则和消息来做到这一点。有谁知道如何为以下控件执行此操作?
<asp:RadioButton runat="server" ID="rbYes" GroupName="radioGroup" Text="Yes"/>
<asp:RadioButton runat="server" ID="rbNo" GroupName="radioGroup" Text="No"/>
<asp:TextBox runat="server" ID="txtBox"/>
答案 0 :(得分:0)
查看.NET控件的ClientID
属性。例如,要确定是否选中“是”单选按钮,请使用
var yesIsChecked = $('#<%=rbYes.ClientID%>').is(':checked');
同样,要测试文本框是否为空,请使用
var txtBoxIsEmpty = $('#<%=txtBox.ClientID%>').val() == "";
您可以将其与例如一个自定义验证器来实现您的目标。有关自定义验证程序here的更多信息。接下来,文章提到ClientValidationFunction
属性,该属性应包含执行验证逻辑的函数的名称。 MSDN参考是here
答案 1 :(得分:0)
非常感谢,
这就是我解决问题的方法:
要禁用或启用文本框,我将以下代码放在jQuery脚本块的$(document).ready()
部分中:
if($('#<%= rbNo.ClientID %>').is(':checked')) {
txtBox.attr('disabled', true);
} else {
txtBox.removeAttr('disabled');
}
要向jQuery validate添加规则(也在$(document).ready()
代码块中):
var rules = {
txtBox: {
required: true,
messages: {required: "Required field when Yes is checked"}
}
};
$('#<%= rbNo.ClientID %>').click(function (e) {
if (this.checked) {
txtBox.attr('disabled', true);
addOrRemoveRules(rules, "remove");
}
else {
txtBox.removeAttr('disabled');
addOrRemoveRules(rules, "add");
}
});
现在在$(document).ready()
代码块之外,在javascript
代码块之外,您需要包含添加或删除规则和消息所需的功能:
function addOrRemoveRules(rulesObj, operation){
if (operation == "add") {
for (var item in rulesObj){
$('#'+item).rules('add',rulesObj[item]);
}
}
else{
for (var item in rulesObj){
$('#'+item).rules('remove');
}
}
}