使用单选按钮控制文本框(启用/禁用) - jQuery

时间:2013-04-17 22:12:50

标签: jquery textbox radio-button

我想获得控制文本框的帮助,启用/禁用,具体取决于所选的单选按钮 - jQuery会更好。

如果选择了一个单选按钮,将启用相关的文本框 - 其他文本框将被禁用。所有场景都是一样的。将预先选择一个单选按钮。

这是我的标记:

     <div>
            <h1>Control fields</h1>
            <div id="Div1">
                <div id="first">
                    <input type="radio" name="radio" id="radio3" checked="checked" />First</br>
        <input type="text" id="txt_one" /></br>
        <input type="text" id="txt_two" /></br>
                </div>
                <div id="second">
                    <input type="radio" name="radio" id="radio4" />Second</br>
                    <input type="text" id="three" /></br>
      <input type="text" id="txt_four" /></br>
                </div>

                <div id="third">
                    <input type="radio" name="radio" id="radio5" checked="checked" />First</br>
        <input type="text" id="txt_five" /></br>
        <input type="text" id="txt_six" /></br>
        <input type="text" id="txt_seven" /></br>
                </div>
            </div>
        </div>

以下链接指向:http://jsfiddle.net/9CDcH/1/

2 个答案:

答案 0 :(得分:1)

我想我可能有你想要的东西。这是jQuery:

$('.RadioExample').not('.First').siblings().prop('disabled',true);

$('.RadioExample').on('click',function(){
    $('.RadioExample')
        .siblings()
        .prop('disabled',true);

    $(this)
        .siblings()
        .prop('disabled',false);
});

为此,您需要为每个广播添加一个类RadioExample,并为第一个单选按钮添加First。这会在页面加载后的第一个(默认情况下已选中)之后禁用单选按钮的所有兄弟节点,然后在每次单击时重新启用所有兄弟节点并启用单击的兄弟节点。

I've updated your jsFiddle

有几种方法可以做到这一点(另一种方法是添加或删除类),但这是首先想到的。

答案 1 :(得分:1)

没有必要使用自定义类,你的实际标记就可以了,所以,试一试:

$(document).ready(function() {
    $('input:radio').change(function() {
        $("#content").find("input:text").attr("disabled",true);
        if($(this).is(":checked")) 
            $(this).parent().find("input:text").attr("disabled",false);
    });
});

当收音机发生变化时,该功能将更新输入,因此所有功能都将被禁用,如果实际的收音机被检查,它将启用同一容器中的所有输入。

看看你的jsfiddle: http://jsfiddle.net/hyunkeln/9CDcH/3/