On Check一个输入被禁用而另一个被启用

时间:2013-07-31 18:37:49

标签: javascript jquery

我正在编写一个获取某些搜索过程值的表单。我正在编写两个文本字段供用户在其中任何一个上输入。但是其中只有一个会一次启用。 。用户可以通过选中复选框来选择该选项。默认情况下,其中一个字段应该启用,当选中复选框时(最初启用的那个)被禁用而其他字段被启用,反之亦然,如果未选中该复选框。

这里is小提琴:

http://jsfiddle.net/awBvq/224/

3 个答案:

答案 0 :(得分:1)

这将解决您的问题

HTML:

<input type="text" name="" />
<input type="checkbox" name="" />
<input type="text" name="" disabled="'disabled'"/>

JS:

$(':checkbox').change(function(){
    if ($(this).is(':checked')) {
        $(this).prev().attr('disabled','disabled');
         $(this).next().removeAttr('disabled');
    } else {
        $(this).next().attr('disabled','disabled');
        $(this).prev().removeAttr('disabled');

    }
});

答案 1 :(得分:0)

本来可以做得更简单,但这只是一个暗示:

if($("#CheckBox").is(":checked"))
{
  $("#Field1").attr("disabled","disabled");
  $("#Field2").removeAttr("disabled");
}
else
{
  $("#Field1").removeAttr("disabled");
  $("#Field2").attr("disabled","disabled");
}

答案 2 :(得分:0)

简单逻辑:

(1)默认情况下禁用任何一个文本框。

(2)使用.prev().next(),检查是否有人被禁用。

(3)如果是这样,启用它并禁用其他反之亦然。

<强> HTML:

<input type="text" name="" disabled/>  <!--By default it is disabled-->
<input type="checkbox" name="" />
<input type="text" name="" />

<强>使用Javascript:

$(':checkbox').change(function () {
    if ($(this).prev().is(':disabled')) {
        $(this).prev().removeAttr('disabled');
        $(this).next().attr('disabled', 'disabled');
    } else {
        $(this).next().removeAttr('disabled');
        $(this).prev().attr('disabled', 'disabled');
    }
});

选中此JSFiddle