禁用启用按钮上的按键
disable enable button on keypress
我想在文本框中有一些值时启用按钮
这在大多数情况下工作良好,但对于一个值,它将失败
类似于在文本框
中输入1http://jsfiddle.net/akash4pj/YhQN4/js
<script>
$(document).ready(function(){
$("#textbx").keypress(function(){
if ($("#textbx").val().length > 0) {
$("#btn").removeAttr('disabled');
}
});
$("#textbx").blur(function(){
if ($("#textbx").val().length ==0) {
$("#btn").attr('disabled','disabled');
}
});
});
</script>
html代码
<input id="textbx" type="text" /><button id="btn" disabled="disabled">go</button>
使用keyup
代替keypress
,如下所示:
$("#textbx").blur(function () {
if ($("#textbx").val().replace(/'s{1,}/g, "").length == 0) {
$("#btn").attr('disabled', 'disabled');
}
});
另外,我也在代码中添加了.replace(/'s{1,}/g, "")
。这确保了(间接地)如果用户只输入空格,当文本输入模糊时,按钮仍将被禁用。
小提琴。
keypress
事件发生在浏览器处理键之前,即在字符被附加到输入值之前,所以当第一个键被按下时,当你的函数检查值长度时文本框仍然是空的。
keyup
事件发生在浏览器将字符追加到输入之后,所以如果您触发keyup
而不是keypress
,您的代码应该按您想要的方式运行。
我建议:
$("#textbx").on('keyup blur', function() {
$("#btn").prop('disabled', $.trim(this.value).length === 0);
});
正如在其他答案中提到的,你应该使用keyup,但你不需要同时监听blur:
$("#textbx").keyup(function(){
if ($("#textbx").val().trim().length > 0) {
$("#btn").removeAttr('disabled');
}
else
$("#btn").attr('disabled','disabled');
});
小提琴
相关文章:
- 如何在 API 调用后和 if 语句中启用提交按钮
- 根据字段的值启用按钮
- 如何启用单选按钮
- 当我的所有 Ng-from 都有效时启用一个按钮
- 如何使用编辑按钮启用表格行中的所有输入
- 多个javascript按钮(启用/禁用)
- 动态按钮启用基于错误组的挖空 js
- 通用JavaScript来处理单选按钮启用/禁用
- 如何在jQuery中所有文本框都有值时按钮启用
- 数据表按钮启用/禁用示例不起作用
- JavaScript按钮启用和禁用与PHP
- 按钮-启用和禁用
- 基于单选按钮启用或禁用文本框
- 当复选框是否被选中时,按钮启用或禁用
- JQuery按钮启用和禁用CSS功能点击
- 按钮启用和禁用单击
- 我如何通过在Javascript中单击重置按钮启用复选框
- 基于单选按钮启用/禁用功能按钮
- Yui 2.0 通过多个单选按钮启用输入
- 基于单选按钮启用/禁用提交按钮