禁用按钮仍然提交表单

时间:2013-07-24 13:23:16

标签: jquery button javascript

单击一次后,保存按钮被禁用,但如果再次单击它,则会重新提交表单。我猜它永远不会到达if语句的第一部分。任何帮助将不胜感激:

-block extra_scripts

:javascript

  function check_button(){ 
    var saveButtons = $('a[name=saveButton]');
    if (saveButtons.is(':disabled')) { 
      alert("disabled");
      return false;
    }
    else{
      $("#main_form").submit();
      saveButtons.attr("disabled", true);
    }
  }

-block main

  .btn-group.pull-right
    %a.btn.icon-save.btn-callout{
      :name => "saveButton",
      :id => "saveButton",
      :type => "submit",
      :onclick => "check_button()"
      }
      Save

只需注意,saveButtons包含两个按钮。一个用于页面顶部,一个用于底部。

3 个答案:

答案 0 :(得分:0)

尝试saveButtons.attr("disabled", "disabled");

答案 1 :(得分:0)

我想只有输入元素可以是:disabled(参见here

您可以尝试if (saveButtons.attr("disabled"))

答案 2 :(得分:0)

我在我的身上用过这个: https://stackoverflow.com/a/22557155/5475948

当然,我还有一些其他脚本检查我的元素,以便删除禁用的类。

<form method="post" id="valid">
    <input type="hidden" id="selected-product" name="selected-product" value="">
    <input type="hidden" id="step" name="step" value="1">
    <button type="submit" id="submitter" class="btn btn-green uppercase disabled">Valider</button>
</form>

<script>
//dom ready handler
jQuery(function ($) {
    //form submit handler
    $('#valid').submit(function (e) {
        //check atleat 1 checkbox is checked
        if ($('#submitter').hasClass('disabled')) {
            //prevent the default form submit if it is not checked
            e.preventDefault();
        }
    })
})
</script>