除非单击单选按钮,否则如何禁用输入?

时间:2014-01-12 11:14:56

标签: javascript

我对Javascript不太熟悉,我知道这是一个非常简单的问题,但我无法弄清楚我哪里出错了。

我正在尝试禁用两个输入字段,除非选择了ID为“custom”的单选按钮。

HTML

<input type="radio" name="period" value="week" /> Weekly
<input type="radio" name="period" value="fortnight" /> Fortnightly
<input type="radio" name="period" value="month" /> Monthly
<input type="radio" name="period" value="quarter" /> Quarterly
<input type="radio" name="period" value="year" /> Annually
<input type="radio" name="period" id="custom" value="one-time" onchange="datedis()"/
<input type="date" name="from" disabled /> to <input type="date" name="to" disabled />

的Javascript

function datedis() {
    if(document.getElementsById("custom").checked) {
        document.getElementsByName("from").disabled = false;
        document.getElementsByName("to").disabled = false;
    } else {
        document.getElementsByName("from").disabled = true;
        document.getElementsByName("to").disabled = true;
    }
}

Here是我在JSFiddle中的代码。

1 个答案:

答案 0 :(得分:3)

多个问题:

  1. 使用onclick代替onchange,并确保将事件处理程序分配给所有单选按钮,而不只是自定义,否则请单击 custom 不会禁用输入字段。 另见:OnChange event handler for radio button (INPUT type="radio") doesn't work as one value

  2. 这是getElementById,而不是getElementsById

  3. 没有document.getElementByName

  4. 在jsfiddle中,使用window.foo = function() {...}定义一个函数,而不是function foo() {...}(因为该代码嵌入在onload中)。

  5. FYC:http://jsfiddle.net/MEsGH/