1

我有 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"); 
  } 
});
4

3 回答 3

3

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

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

    $(this).next("input").attr("disabled", false)
});
于 2012-06-21T17:28:14.357 回答
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/

于 2012-06-21T17:29:13.780 回答
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');
}});​
于 2012-06-21T17:30:35.307 回答