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

Javascript 如何禁用输入,除非单击单选按钮?,javascript,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="per

我对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 />
是我在JSFIDLE中的代码。

多个问题:

  • 使用
    onclick
    而不是
    onchange
    ,并确保将事件处理程序分配给所有单选按钮,而不仅仅是自定义按钮,否则单击远离自定义按钮不会禁用输入字段。 另见:

  • 它是
    getElementById
    ,而不是
    getElementsById

  • 没有
    文档。getElementByName

  • 在JSFIDLE中,使用
    window.foo=function(){…}
    定义函数,而不是
    function foo(){…}
    (因为该代码嵌入在
    onload
    中)

  • FYC:

    多个问题:

  • 使用
    onclick
    而不是
    onchange
    ,并确保将事件处理程序分配给所有单选按钮,而不仅仅是自定义按钮,否则单击远离自定义按钮不会禁用输入字段。 另见:

  • 它是
    getElementById
    ,而不是
    getElementsById

  • 没有
    文档。getElementByName

  • 在JSFIDLE中,使用
    window.foo=function(){…}
    定义函数,而不是
    function foo(){…}
    (因为该代码嵌入在
    onload
    中)

  • FYC:

    多个问题:

  • 使用
    onclick
    而不是
    onchange
    ,并确保将事件处理程序分配给所有单选按钮,而不仅仅是自定义按钮,否则单击远离自定义按钮不会禁用输入字段。 另见:

  • 它是
    getElementById
    ,而不是
    getElementsById

  • 没有
    文档。getElementByName

  • 在JSFIDLE中,使用
    window.foo=function(){…}
    定义函数,而不是
    function foo(){…}
    (因为该代码嵌入在
    onload
    中)

  • FYC:

    多个问题:

  • 使用
    onclick
    而不是
    onchange
    ,并确保将事件处理程序分配给所有单选按钮,而不仅仅是自定义按钮,否则单击远离自定义按钮不会禁用输入字段。 另见:

  • 它是
    getElementById
    ,而不是
    getElementsById

  • 没有
    文档。getElementByName

  • 在JSFIDLE中,使用
    window.foo=function(){…}
    定义函数,而不是
    function foo(){…}
    (因为该代码嵌入在
    onload
    中)


  • FYC:

    最简单的方法是选中一个单选按钮,并始终启用输入字段。但我希望输入字段仅在选中某个单选按钮时启用。哦,对不起,我的错误。你很快就会得到答案。最简单的方法是选中一个单选按钮,并始终启用输入字段。但是我希望输入字段仅在选中某个单选按钮时启用。哦,对不起,我的错误。你很快就会得到答案。最简单的方法是选中一个单选按钮,并始终启用输入字段。但是我希望输入字段仅在选中某个单选按钮时启用。哦,对不起,我的错误。你很快就会得到答案。最简单的方法是选中一个单选按钮,并始终启用输入字段。但是我希望输入字段仅在选中某个单选按钮时启用。哦,对不起,我的错误。你很快就会有答案的。
    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;
        }
    }