0

我有两个单选框,但无法将它们设为只读,因此我决定禁用未选中的一个选项。我尝试使用 jquery“获取”元素以及我从控制台的单选框上获得的信息。但是,它没有用。我从来没有真正写过 Jquery,所以我很难找到错误。

//priority - disable unchecked radiobox
var high = $("input[value='ct101']");
var reg = $("input[value='ct100']");

if(reg.checked == true){
    high.disabled=true;
}else{
    reg.disabled=true;
}

常规单选框

<input id="ctl00_m_g_0537f4e9_69aa_409a_b5ed_15e3624efeab_ctl00_ctl05_ctl02_ctl00_ctl00_ctl04_ctl00_ctl00"
type="radio" 
value="ctl00" 
disabled="true" 
name="ctl00$m$g_0537f4e9_69aa_409a_b5ed_15e3624efeab$ctl00$ctl05$ctl02$ctl00$ctl00$ctl04$ctl00$RadioButtons"
>

高单选框

<input id="ctl00_m_g_0537f4e9_69aa_409a_b5ed_15e3624efeab_ctl00_ctl05_ctl02_ctl00_ctl00_ctl04_ctl00_ctl01" 
type="radio" 
name="ctl00$m$g_0537f4e9_69aa_409a_b5ed_15e3624efeab$ctl00$ctl05$ctl02$ctl00$ctl00$ctl04$ctl00$RadioButtons" 
value="ctl01" 
checked="checked"
>
4

2 回答 2

0

reg is a jQuery wrapper reference, not a dom reference so it does not have checked property instead you can test it for against the :checked selector using .is()

you need to check

if(reg.is(':checked') == true){
    high.disabled=true;
}else{
    reg.disabled=true;
}
于 2013-08-15T05:32:10.820 回答
0

这里的变量highreg是 jquery 包装对象,而不是常规的 dom 对象。

您的代码的问题是属性.checked.disabled可用于 dom 对象而不是 jquery 包装器对象。

要实现您想要做的事情,请改用以下代码:

if(reg.is(':checked') == true){
    high.attr('disabled', 'disabled'); 
}else{
    reg.attr('disabled', 'disabled'); 
}

有关 jquery 特定内容的更多信息:

  1. 检查是否选中了复选框-> 参考此链接
  2. 禁用/启用控制 -> 参考此链接

希望这有帮助!

于 2013-08-15T17:30:04.783 回答