1

我有一个简单的解决方案应该是一个问题,我确定我只是错过了一些东西。

我有 2 列单选按钮,当单击列中的单选按钮时,我需要禁用对列中相应的单选按钮,因此无法选择它。然后,如果选择了另一个按钮,则重新启用前一个按钮并禁用新的相反选择。

我给所有的单选按钮一个唯一的ID。第一列的 first1、first2 等,第二列的 second1、second2 等。

重新考虑后,我前进的方式将行不通,在网上搜索了一个小时后,我还没有找到非 jquery 的方式。可以用javascript吗?

到目前为止我所拥有的,而且我知道我离基地还很远,但我已经被这个页面遇到的不同问题搞得筋疲力尽:

function disableForm(theform, theradio) {
    //this was a start but does't save valid disabled fields
    //it just enables everything
    if (document.all || document.getElementById) {
        for (i = 0; i < theform.length; i++) {
        var formElement = theform.elements[i];
            if (true) {
                formElement.disabled = false;
            }
        }

    }

    document.getElementById(theradio).onclick = function(){
        document.getElementById(theradio).disabled=true;
    }
}
4

1 回答 1

3

假设您将收音机定义为

<table style="width: 100%;">
        <tr>
            <td>
                <input id="Radio1_1" type="radio" name="Radio1" onchange="process(this)"/><br />
                <input id="Radio1_2" type="radio" name="Radio1" onchange="process(this)"/><br />
                <input id="Radio1_3" type="radio" name="Radio1" onchange="process(this)"/><br />
                <input id="Radio1_4" type="radio" name="Radio1" onchange="process(this)"/><br />
                <input id="Radio1_5" type="radio" name="Radio1" onchange="process(this)"/>
            </td>
            <td>
                <input id="Radio2_1" type="radio" name="Radio2" /><br />
                <input id="Radio2_2" type="radio" name="Radio2" /><br />
                <input id="Radio2_3" type="radio" name="Radio2" /><br />
                <input id="Radio2_4" type="radio" name="Radio2" /><br />
                <input id="Radio2_5" type="radio" name="Radio2" />

            </td>

        </tr>

    </table>

那么目标可以通过一个简单的脚本来实现:

 function process(rb) {

   //clearing previos disabled
   for (i = 0; i < document.getElementsByName("Radio2").length; i++) {
       document.getElementsByName("Radio2")[i].disabled = '';
   }
   document.getElementById(rb.id.replace('Radio1','Radio2')).disabled='disabled';
 }

工作示例:http: //jsfiddle.net/bbGDA/1/

于 2013-08-07T21:42:53.197 回答