如果用户没有提供任何文本,我正在尝试禁用提交按钮。
乍一看,一切都很正常,但如果用户键入一些文本,然后将其删除,提交按钮就会启用。
下面是我的代码:
$(document).ready(function(){
$('.sendButton').attr('disabled',true);
$('#message').keyup(function(){
if($(this).val.length !=0){
$('.sendButton').attr('disabled', false);
}
})
});发布于 2013-07-17 19:54:21
你只在document.ready上禁用,当DOM准备就绪时,这只会发生一次,但当textbox为空时,你也需要在keyup事件中使用disable。还要将$(this).val.length更改为$(this).val().length
$(document).ready(function(){
$('.sendButton').attr('disabled',true);
$('#message').keyup(function(){
if($(this).val().length !=0)
$('.sendButton').attr('disabled', false);
else
$('.sendButton').attr('disabled',true);
})
});或者,您可以使用条件运算符而不是if语句。也可以使用属性代替attr,因为对于disabled、checked等属性,属性不是recommended by jQuery 1.6或更高。
对于jQuery 1.6,对于尚未设置的属性,.attr()方法将返回
。要检索和更改DOM属性,如表单元素的选中、选中或禁用状态,请使用.prop()方法jQuery docs
$(document).ready(function(){
$('.sendButton').prop('disabled',true);
$('#message').keyup(function(){
$('.sendButton').prop('disabled', this.value == "" ? true : false);
})
}); 发布于 2013-07-17 19:59:06
试试这段代码
$(document).ready(function(){
$('.sendButton').attr('disabled',true);
$('#message').keyup(function(){
if($(this).val().length !=0){
$('.sendButton').attr('disabled', false);
}
else
{
$('.sendButton').attr('disabled', true);
}
})
});检查demo Fiddle
您缺少if语句的else部分(如果textbox为空,则再次禁用该按钮)和if($(this).val.length !=0){中val函数后的圆括号()
发布于 2013-07-17 20:43:11
请试试这个
<!DOCTYPE html>
<html>
<head>
<title>Jquery</title>
<meta charset="utf-8">
<script src='http://code.jquery.com/jquery-1.7.1.min.js'></script>
</head>
<body>
<input type="text" id="message" value="" />
<input type="button" id="sendButton" value="Send">
<script>
$(document).ready(function(){
var checkField;
//checking the length of the value of message and assigning to a variable(checkField) on load
checkField = $("input#message").val().length;
var enableDisableButton = function(){
if(checkField > 0){
$('#sendButton').removeAttr("disabled");
}
else {
$('#sendButton').attr("disabled","disabled");
}
}
//calling enableDisableButton() function on load
enableDisableButton();
$('input#message').keyup(function(){
//checking the length of the value of message and assigning to the variable(checkField) on keyup
checkField = $("input#message").val().length;
//calling enableDisableButton() function on keyup
enableDisableButton();
});
});
</script>
</body>
</html>https://stackoverflow.com/questions/17699094
复制相似问题