使用jQuery禁用单选button

我试图禁用这些单选button,当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> 

以下是我正在使用的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'); }); } 

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

 jQuery("#loadActive").click(writeData); function writeData() { jQuery("#chatTickets input:radio").attr('disabled',true); } 

如果表单上有两个以上的单选button,则必须修改select器,例如,您可以使用“ 开始”属性filter来选取以ID开头的无线电:

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

删除你的“每个”,只是使用:

 $('input[name=ticketID]').attr("disabled",true); 

那很简单。 有用

首先,有效的语法是

 jQuery("input[name=ticketID]") 

第二,你有没有尝试过:

 jQuery(":radio") 

代替?

第三,为什么不给所有的单选button分配一个类,并按类select它们呢?

我只是用你的代码构build了一个沙箱环​​境,它为我工作。 这是我用的:

 <html> <head> <title>test</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> </head> <body> <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> <script> 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'); }); } </script> </body> </html> 

我在FF3.5中testing,现在移到IE8。 而且它在IE8中也能正常工作。 你使用的是什么浏览器?

码:

 function writeData() { jQuery("#chatTickets input:radio[id^=ticketID]:first").attr('disabled', true); return false; } 

另请参见: select器/无线电 , select器/属性开始与 , select器/开始

只是使用jQuery的prop

  $(".radio-button").prop("disabled", false); $(".radio-button").prop("disabled", true); // disable 

您应该使用类来使它更简单,而不是属性名称,或任何其他jQueryselect器。