如果我的表单输入为空,我正在尝试禁用搜索提交按钮,如果没有搜索任何内容但是如果我提交搜索然后(一旦页面加载)清除搜索输入并单击提交再次,该按钮未被禁用。
我正在使用此代码禁用提交按钮
$("#searchform input#search-submit").click(function() {
var sValue = $('#searchform input#s').val();
if (sValue != "") {
$('form#searchform input[type=submit]').removeAttr('disabled');
} else {
$('form#searchform input[type=submit]').attr('disabled', 'disabled');
}
});
我已经知道问题是输入字段保留了我之前搜索过的任何值,因此按钮未被禁用,因为它检查输入值并认为它不为空。
有没有办法在清除输入字段后自动删除输入值而不刷新页面?
更新
这是fiddle
答案 0 :(得分:1)
在这里,我将Jsfiddle链接包含在您的预期结果中,请参阅以下链接,您将获得结果。
$("#searchform input#searchsubmit").click(function() {
var sValue = $('#searchform input#s').val();
if (sValue != "") {
$('form#searchform input[type=submit]').removeAttr('disabled');
return true;
} else {
$('form#searchform input[type=submit]').attr('disabled', 'disabled');
return false;
}
return false;
});
答案 1 :(得分:0)
我认为将您的点击与live或on绑定会帮助您
$("#searchform input#searchsubmit").click(function(e) {
var sValue = $('#searchform input#s').val();
alert(sValue)
if (sValue != "") {
$('form#searchform input[type=submit]').removeAttr('disabled');
} else {
e.preventDefault()
$('form#searchform input[type=submit]').attr('disabled', 'disabled');
}
});
答案 2 :(得分:0)
如果在输入#s
为空时单击搜索按钮,则该按钮将变为禁用。
然后它不能再次按下,也不能重新启用。
尝试使用其他活动,例如changed
或keypress
:
$('form#searchform input#s').changed(function() ...
另请注意,根据jQuery版本(1.9或更高版本),您必须使用.prop()
启用和禁用(或添加/删除复选标记)控件:
$('form#searchform input[type=submit]').prop('disabled', true);
的更多信息