使用jQuery禁用单选按钮

use*_*785 44 jquery

我正在尝试在单击loadActive链接时禁用这些单选按钮但由于某种原因它只会禁用顺序中的第一个,然后跳过其余按钮.

<form id="chatTickets" method="post" action="/admin/index.cfm/">
    <input id="ticketID1" type="radio" checked="checked" value="myvalue1" name="ticketID"/>
    <input id="ticketID2" type="radio" checked="checked" value="myvalue2" name="ticketID"/>
</form>
<a href="#" title="Load ActiveChat" id="loadActive">Load Active</a>
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的jquery:

jQuery("#loadActive").click(function() {
    //I have other code in here that runs before this function call
    writeData();
});
function writeData() {
    jQuery("input[name='ticketID']").each(function(i) {
    jQuery(this).attr('disabled', 'disabled');
});
}
Run Code Online (Sandbox Code Playgroud)

kar*_*m79 48

我已经重构了你的代码,这应该工作:

jQuery("#loadActive").click(writeData);

function writeData() {
    jQuery("#chatTickets input:radio").attr('disabled',true);
}
Run Code Online (Sandbox Code Playgroud)

如果表单上有两个以上的单选按钮,则必须修改选择器,例如,您可以使用带有属性过滤器开头来挑选ID开头的无线电ticketID:

function writeData() {
    jQuery("#chatTickets input[id^=ticketID]:radio").attr('disabled',true);
}
Run Code Online (Sandbox Code Playgroud)


KCO*_*zen 45

删除你的"每个",只需使用:

$('input[name=ticketID]').attr("disabled",true);
Run Code Online (Sandbox Code Playgroud)

那么简单.有用


mko*_*yak 9

首先,有效的语法是

jQuery("input[name=ticketID]")
Run Code Online (Sandbox Code Playgroud)

第二,你尝试过:

jQuery(":radio")
Run Code Online (Sandbox Code Playgroud)

代替?

第三,为什么不为所有单选按钮分配一个类,并按类选择它们?

  • 那么当名称足够时你必须保持类名和名字 (2认同)

mos*_*znv 5

只需使用jQuery prop

 $(".radio-button").prop("disabled", false);
 $(".radio-button").prop("disabled", true); // disable
Run Code Online (Sandbox Code Playgroud)