可以轻松禁用输入元素,但是启用它们的方式是什么?
以下代码可以禁用但不启用输入元素。
$('#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;
答案 0 :(得分:8)
只是为了扩大答案......
真正的问题是,您试图通过setAttribute()
将禁用设置为false,这不符合您的预期。如果设置了disabled-attribute,则无论值如何,都会禁用该元素
因此,disabled="true"
,disabled="disabled"
和disabled="false"
都是等效的:元素被禁用)。
您应该删除完整属性
$('#enb').click(function() {
$('#inp').removeAttr('disabled');
});
答案 1 :(得分:6)
问题出在您的代码中,true
和false
用引号括起来,使它们成为字符串而不是布尔值。请注意,'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()
$('#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;
答案 4 :(得分:1)
您好请尝试以下代码
布尔值与字符串不同,而不是 &#39; true&#39; 使用 true 没有引号
$('#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;
答案 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');