如果我的texbox
突然充满了文字而没有点击文字框输入内容,那么任何人都可以帮助我禁用按钮吗。
我的问题是我的代码无法正常工作。有谁知道怎么做。
<form method="post">
<input type="text" name="name1" id="name1" class="number" />
<input type="text" name="name2" id="name2" class="number" />
<input type="submit" name="send" id="send" class="hey" value="one" disabled />
</form>
脚本代码:
<script>
$(document).ready(function () {
$('.number').blur(function () {
if ($.trim(this.value) == "") {
$('#send').attr("disabled", true);
}
else {
$('#send').removeAttr("disabled");
}
});
});
</script>
答案 0 :(得分:3)
您可以使用输入,模糊和键盘事件的组合来保证安全:
$('.number').on('keyup blur input', function () {
$('#send').prop("disabled", !$.trim(this.value));
});
答案 1 :(得分:1)
$('.number').keyup(function () {
if ($.trim(this.value) == "") {
$('#send').addAttr('disabled');
}
else {
$('#send').removeAttr('disabled');
}
});
答案 2 :(得分:0)
使用keyup
代替blur
和prop()
代替attr()
当输入获得焦点或焦点松散时,会触发模糊。 prop应该用于布尔属性,例如checked disabled等。
<强> Live Demo 强>
$('.number').keyup(function () {
if ($.trim(this.value) == "") {
$('#send').prop("disabled", true);
}
else {
$('#send').prop("disabled", false);
}
});
从jQuery 1.6开始,.attr()方法为属性返回undefined 尚未设定。检索和更改DOM属性,例如 选中,选中或禁用表单元素的状态,使用 .prop()方法,reference。
答案 3 :(得分:0)
如果您想确保仅在填充两个文本框时启用该按钮,则可以执行以下操作:
function doCheck() {
var allFilled = true;
$('input[type=text]').each(function () {
if ($(this).val() == '') {
allFilled = false;
return false;
}
});
$('input[type=submit]').prop('disabled', !allFilled);
}
$(document).ready(function () {
$('input[type=text]').keyup(doCheck);
});
<强> Fiddle Demo 强>