我正在尝试使用keyup功能禁用文本框。我有一个 TextArea 和一个文本框。现在我在退格键上使用键盘操作,就像textarea中的内容长度是3一样,它应该禁用文本框。我还有一条警报消息,当文本区域中的内容长度为3时弹出。但代码适用于弹出窗口,但它对文本框不起作用。我错过了什么?请帮忙。这是我的代码:
$('#comment').keyup(function() {
if (event.which == 8) {
var txt = $('#comment').val().length;
if(txt == 3)
{
alert("backspace");
$("#text1").attr("diasbled", "diasbled");
}
}
});
以下是JSfiddle的目的。
答案 0 :(得分:4)
这里有一些拼写错误disabled
而不是diasbled
试试这个
$('#comment').keyup(function () {
var len = $(this).val().length;
if (len >= 3) {
$("#text1").prop("disabled", true);
}
else{
$("#text1").prop("disabled", false);
}
});
答案 1 :(得分:3)
你需要这样做:
1)this.value.length
获取textarea的总字符长度
2)从jQuery版本1.6
开始,使用 .prop() 代替.attr()
来设置元素的属性
3)纠正错字:它应该是disabled
而不是diasbled
$('#comment').keyup(function () {
if (this.value.length >= 3) {
$("#text1").prop("disabled", true);
} else {
$("#text1").prop("disabled", false);
}
});
<强> Updated Fiddle 强>
答案 2 :(得分:1)
使用prop
代替attr
也将事件传递给函数
$('#comment').keyup(function (event) { //and event here
if (event.which == 8) {
if ($(this).val().length >= 3) {
$("#text1").prop("disabled", true);
}
}
});
答案 3 :(得分:1)
您的代码很好..但是您错误地将代码中的“已禁用”。这是样本..
<html>
<head>
<title>js test</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
</head>
<body>
<input type="text" value="" id="comment" />
<input type="text" value="" id="text1" />
<script type="text/javascript">
$(document).ready(function()
{
$('#comment').keyup(function(e) {
if (e.which == 8) {
var txt = $('#comment').val().length;
if(txt == 3)
{
alert("backspace");
$("#text1").attr("disabled", "disabled");
}
}
});
});
</script>
</body>