如何在带有浏览器历史记录的文本字段中输入文本时启用按钮?

时间:2014-07-21 02:06:53

标签: javascript jquery

我的按钮仅在通过键入输入字段中的文本时启用,当我输入带有浏览器历史记录的文本时表示当我单击该字段时它显示前一条记录并且我用鼠标输入它然后按钮不是启用。

这是我的代码:

    <script type="text/javascript">
    $(function() {
        $(":text").keyup( check_submit).each(function() {
            check_submit();
      });
   });

    function check_submit() {
        $('input[type="submit"]').attr('disabled','disabled');
    if ($(this).val().length == '') {
         $(":submit").attr("disabled", true);
      } else {
         $(":submit").removeAttr("disabled");
      }
   }    
</script>

有任何帮助吗? 感谢

2 个答案:

答案 0 :(得分:0)

这样做

$(":text").on("change", function() {
    if ($(this).val().length == 0) { 
        $(":submit").attr('disabled','disabled');
        $(":submit").attr("disabled", "true");
    } else {
        $(":submit").removeAttr("disabled");
    }
});

答案 1 :(得分:0)

This answer对类似的问题建议听一个input事件。尝试将其与changekeyup事件一起使用。此外,您应该使用.prop()而不是.attr()来设置按钮的禁用状态:

$(function () {
    $(":text").on('keyup input change', check_submit).each(check_submit);
});

function check_submit() {
    var $this = $(this);
    $(":submit").prop("disabled", function(){
        return !$this.val().length;
    });
 }

<强> Demo fiddle