选中单选按钮上的输入字段

时间:2012-06-21 17:23:59

标签: javascript jquery

我有2个单选按钮和2个输入字段。我想将单选按钮与输入字段关联,因此仅启用所选单选按钮的输入字段,而禁用其他按钮。

我的html标记是:

<div>
    <input type="radio" checked="checked" name="co" data-for="s" />
    <input type="text" id="s" />
    <br /><br />

    <input type="radio" name="co" data-for="u"/>
    <input type="text" id="u" disabled="disabled" />
</div>

因此,目前检查第一个单选按钮,并启用其输入字段。我怎么能用一些jquery代码做到这一点?

修改

我试过了:

$("input[type=radio][name=co]").bind({
  change: function () { 
    if ($(this).attr("checked") == "checked")
       $("#" + $(this).attr("data-for")).removeAttr("disabled"); 
    else 
       $("#" + $(this).attr("data-for")).attr("disabled", "disabled"); 
  } 
});

3 个答案:

答案 0 :(得分:3)

试试这个 - http://jsfiddle.net/DMasH/

$("input:radio").on("click", function() {
    $("input:text").attr("disabled", true);

    $(this).next("input").attr("disabled", false)
});

答案 1 :(得分:0)

$("input[type='radio']").click(function() {
    $("input[type='text']").attr("disabled", "disabled");
    if ($(this).next().attr("disabled") == "disabled") $(this).next().removeAttr("disabled");
    else $(this).next().attr("disabled", "disabled");
});

禁用所有框,然后仅启用下一个框。

http://jsfiddle.net/reygonzales/sJZD7/

答案 2 :(得分:0)

解决方案 - http://jsfiddle.net/4uQqE/2/

$('input[data-for]').change(function() {
target = $('#'+$(this).data('for'));
$('input[type="text"]').attr('disabled','disabled');
if($(this).is(":checked")) {
    target.removeAttr('disabled');
}});​