Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript禁用单个单选按钮_Javascript_Html - Fatal编程技术网

javascript禁用单个单选按钮

javascript禁用单个单选按钮,javascript,html,Javascript,Html,我有一个简单的解决方案应该是一个问题,我肯定我只是错过了一些东西 我有两列单选按钮,当单击某列中的单选按钮时,我需要禁用另一列中相应的单选按钮,因此无法选择它。然后,如果选择了另一个按钮,则重新启用上一个按钮并禁用新的相反选择 我给了所有单选按钮一个唯一的id。第一列为first1、first2等,第二列为second1、second2等 在重新思考这个问题之后,我所采用的方法行不通,在网上搜索了一个小时之后,我还没有找到一种非jquery的方法来实现它。可以使用javascript吗 到目前为

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

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

我给了所有单选按钮一个唯一的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;
    }
}
函数禁用形式(theform,theradio){
//这是一个开始,但不保存有效的禁用字段
//它只是让一切都能实现
if(document.all | | document.getElementById){
对于(i=0;i
假设您将收音机定义为

<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';
 }
功能过程(rb){
//已禁用清除previos
对于(i=0;i

工作示例:

是否可以定义其他组?第一个1和第二个1,第一个2和第二个2。。。这样,如果您选择了另一个按钮,该按钮将始终处于未选中状态?因此,您不必通过JavaScript禁用任何内容fiddle@xmashallax最多可以选择2个选项,但不能选择其中的2个。我不明白你的建议。你能发布HTML标记吗?请不要在我们面前描述HTML。在这里向我们展示实际的HTML代码,理想情况下,我们可以使用一个简单的()。描述用户交互以及发生了什么、如何失败以及您希望发生什么(响应什么)。很棒,但是当选择右栏按钮时,它不会禁用相应的左栏按钮。只需使用相同的逻辑,但应用相反的替换,例如有多个选项,例如定义函数
process2(rb)
在其中,只需反转“Radio2”和“Radio1”替换,并将其连接到右栏的选项是的,这就是我最后要做的。谢谢@Yuriy!