重置输入值而不刷新页面

时间:2014-08-04 10:04:16

标签: jquery html forms input submit

如果我的表单输入为空,我正在尝试禁用搜索提交按钮,如果没有搜索任何内容但是如果我提交搜索然后(一旦页面加载)清除搜索输入并单击提交再次,该按钮未被禁用。

我正在使用此代码禁用提交按钮

$("#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

3 个答案:

答案 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;
});

http://jsfiddle.net/j7zwT/30/

答案 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为空时单击搜索按钮,则该按钮将变为禁用。 然后它不能再次按下,也不能重新启用。 尝试使用其他活动,例如changedkeypress

$('form#searchform input#s').changed(function() ...

另请注意,根据jQuery版本(1.9或更高版本),您必须使用.prop()启用和禁用(或添加/删除复选标记)控件:

$('form#searchform input[type=submit]').prop('disabled', true);

有关how migrating to jQuery 1.9

的更多信息