如果使用jquery单击特定的单选按钮,如何禁用文本框?

时间:2014-05-26 23:34:37

标签: javascript jquery html

我有一个html表单,其中有四个单选按钮和一个文本框。我想要做的是 - 一旦我点击Test4单选按钮,我想禁用node文本框,这样任何人都无法输入任何内容。我不想隐藏它,我只是想禁用它。

但如果有人点击Test1Test2Test3,那么任何人都可以输入任何内容。

这是我的jsfiddle

这可以使用jquery吗?

2 个答案:

答案 0 :(得分:5)

是的,这是可能的;我建议:

$('input[type="radio"]').change(function(){
    $('#node').prop('disabled', this.value === 'test4');
});

JS Fiddle demo

这会将disabled元素的#node属性设置为true(如果changed元素的值为' test4'),则设置为{{ 1}}如果没有。

继续评论中的讨论(其中,基本上,OP显示检查false的其他input元素导致type="radio"元素重新启用),我&#39 ;修改了HTML,提供了一种使用#node将适当的input与特定文本输入相关联的简单方法。给出以下HTML:

data-affects

加上修改后的jQuery:

<input type="radio" name="data" id="test1" value="test1" data-affects="nodes" />Test1 
<input type="radio" name="data" id="test2" value="test2" data-affects="nodes" />Test2 
<input type="radio" name="data" id="test3" value="test3" data-affects="nodes" />Test3 
<input type="radio" name="data" id="test4" value="test4" data-affects="nodes" />Test4

JS Fiddle demo

参考文献:

答案 1 :(得分:1)

在你的jsfiddle中,在js的顶部添加这段代码:

$("input:radio[name=data]").change(function () {
    var checkedValue = $(this).val();
    if (checkedValue == "test4") {
        $("#node").prop("disabled", true);
    } else {
        $("#node").prop("disabled", false);
    }
});

您也可以通过ID而不是名称来呼叫广播组:

$("input:radio[id=data]").change(function () { //first line of code

此处的实例:http://jsfiddle.net/pw9nZ/

希望这可以帮助你...

西奥。