3

几个小时以来,我一直在试图找出解决问题的方法。我对 Javascript 还是很陌生,所以如果我听起来很愚蠢,请原谅我。遗憾的是我不知道 jQuery,我开始认为它阻碍了我想出一个解决方案。

我想要做的是有一个启用禁用单选按钮的复选框。如果这是有道理的。

例子:

  • 选择 1
  • 子选择
  • 子选择
  • 子选择

我希望能够单击第一个复选框(选择 1)以启用子选择。如果未单击,则应禁用子选项。:-)

这是我到目前为止所得到的:

<script>
function enableRadios(x) {
    var formElement = eval("checkbox" + x)
    if (formElement[0].disabled) {
        formElement[0].disabled = false
        formElement[1].disabled = false
    } else {
        formElement[0].disabled = true
        formElement[1].disabled = true
    }
 }</script>

<body><input type="checkbox" name="main" value="main" onClick="enableRadios(x)">
<input disabled type="radio" value="1" name="x">
<input disabled type="radio" value="2" name="x">
<input disabled type="radio" value="3" name="x">
<input disabled type="radio" value="4" name="x">
<input disabled type="radio" value="5" name="x">
<input disabled type="radio" value="6" name="x"></body>

我真的很感谢你的帮助!

4

1 回答 1

2

您需要传递包含电台名称的字符串'x',而不是传递变量x

<script>
function toggleRadios(name) {
    var elems = document.getElementsByName(name);
    for(i=0; i<elems.length; i++) {
        elems[i].disabled = !elems[i].disabled;
    }
}
</script>

<input type="checkbox" name="main" value="main" onclick="toggleRadios('x')">
<input disabled type="radio" value="1" name="x">
<input disabled type="radio" value="2" name="x">
<input disabled type="radio" value="3" name="x">
<input disabled type="radio" value="4" name="x">
<input disabled type="radio" value="5" name="x">
<input disabled type="radio" value="6" name="x">

http://jsfiddle.net/samliew/B6tF7/

于 2013-04-23T07:41:35.290 回答