无法启用禁用的输入

时间:2015-09-26 10:01:41

标签: javascript jquery html

可以轻松禁用输入元素,但是启用它们的方式是什么?

以下代码可以禁用但不启用输入元素。



$('#dis').click(function() {
  $('#inp').attr('disabled', 'true');
});

$('#enb').click(function() {
  $('#inp').attr('disabled', 'false');
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id='inp' type='text'>
<button id='enb'>Enable</button>
<button id='dis'>Disable</button>
&#13;
&#13;
&#13;

8 个答案:

答案 0 :(得分:8)

只是为了扩大答案......

真正的问题是,您试图通过setAttribute()将禁用设置为false,这不符合您的预期。如果设置了disabled-attribute,则无论值如何,都会禁用该元素 因此,disabled="true"disabled="disabled"disabled="false"都是等效的:元素被禁用)。

您应该删除完整属性

$('#enb').click(function() {
   $('#inp').removeAttr('disabled');
});

答案 1 :(得分:6)

问题出在您的代码中,truefalse用引号括起来,使它们成为字符串而不是布尔值。请注意,'true''false'都是真值,因此您的代码会在两种情况下将启用值设置为true。

我希望以下内容适用于您,请检查代码段:

$('#dis').click(function() {
    $("#inp").prop('disabled', true);
});

$('#enb').click(function() {
    $("#inp").prop('disabled', false);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id='inp' type='text'>
<button id='enb'>Enable</button>
<button id='dis'>Disable</button>

答案 2 :(得分:4)

只需删除disabled属性

即可
$('#enb').click(function() {
   $('#inp').removeAttr('disabled');
});

答案 3 :(得分:2)

您可以使用removeAttr()

&#13;
&#13;
$('#dis').click(function() {
  $('#inp').attr('disabled', 'true');
});

$('#enb').click(function() {
  $('#inp').removeAttr('disabled');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id='inp' type='text'>
<button id='enb'>Enable</button>
<button id='dis'>Disable</button>
&#13;
&#13;
&#13;

答案 4 :(得分:1)

您好请尝试以下代码

布尔值与字符串不同,而不是 &#39; true&#39; 使用 true 没有引号

&#13;
&#13;
$('#dis').click(function() {
  $('#inp').attr('disabled', true);
});

$('#enb').click(function() {
  $('#inp').attr('disabled', false);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id='inp' type='text'>
<button id='enb'>Enable</button>
<button id='dis'>Disable</button>
&#13;
&#13;
&#13;

答案 5 :(得分:1)

<scriptsrc="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id='inp' type='text'>
<button id='enb'>Enable</button>
<button id='dis'>Disable</button>
<script type="text/javascript">
    $( document ).ready(function() {

$( "#dis" ).click(function() {
  $('#inp').prop( "disabled", true );

});

$( "#enb" ).click(function() {
  $('#inp').prop( "disabled", false );
});

});
</script>

答案 6 :(得分:0)

$('#dis').click(function() {
  $('#inp').attr('disabled', 'true');
});

$('#enb').click(function() {
  $('#inp').removeAttr('disabled');
});

因为disable="disable"等于disable本身

答案 7 :(得分:0)

有办法!您需要删除禁用的属性,如下所示:

$('#inp').removeAttr('disabled');