Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正确禁用提交按钮_Javascript_Jquery_Html - Fatal编程技术网

Javascript 正确禁用提交按钮

Javascript 正确禁用提交按钮,javascript,jquery,html,Javascript,Jquery,Html,这是我用来禁用按钮的代码 $("#btnSubmit").attr('disabled', 'disabled') $("#btnSubmit").disabled = true; 这是我的提交按钮 <input id="btnSubmit" class="grayButtonBlueText" type="submit" value="Submit" /> 尽管该按钮看起来已禁用,但您仍可以单击它。。这是用FF 3.0和IE6

这是我用来禁用按钮的代码

            $("#btnSubmit").attr('disabled', 'disabled')
            $("#btnSubmit").disabled = true;
这是我的提交按钮

<input id="btnSubmit" class="grayButtonBlueText" type="submit" value="Submit" />

尽管该按钮看起来已禁用,但您仍可以单击它。。这是用FF 3.0和IE6测试的

我在这里做错了什么吗?

如果它是一个真正的表单,即没有处理javascript事件,那么它应该可以工作

如果您使用onClick事件处理按钮,您会发现它可能仍然会触发。如果这样做的话,最好在JS中设置一个类似buttonDisabled的变量,并在处理onClick事件时检查该变量

否则尝试

$(yourButton).attr("disabled", "true");
如果在所有这些之后,您仍然一事无成,您可以使用jquery手动“打破”按钮(现在情况越来越严重):

这将停止按钮像按钮一样的行为。

如果它是一个真实的表单,即未处理javascript事件,则应能正常工作

如果您使用onClick事件处理按钮,您会发现它可能仍然会触发。如果这样做的话,最好在JS中设置一个类似buttonDisabled的变量,并在处理onClick事件时检查该变量

否则尝试

$(yourButton).attr("disabled", "true");
如果在所有这些之后,您仍然一事无成,您可以使用jquery手动“打破”按钮(现在情况越来越严重):


这将停止按钮的按钮行为。

根据表单提交的处理方式,您可能还需要删除任何单击处理程序和/或添加一个中止提交的处理程序

$('#btnSubmit').unbind('click').click( function() { return false; } );

重新启用按钮时,您必须再次添加单击处理程序。

根据表单提交的处理方式,您可能还需要删除任何单击处理程序和/或添加一个中止提交的处理程序

$('#btnSubmit').unbind('click').click( function() { return false; } );

当(如果)重新启用按钮时,您必须再次添加单击处理程序。

您需要在浏览器中处理后退/后退按钮。 下面的示例

1) 创建form.js:

(function($) {
    $.enhanceFormsBehaviour = function() {
        $('form').enhanceBehaviour();
    }

    $.fn.enhanceBehaviour = function() {
        return this.each(function() {
            var submits = $(this).find(':submit');
            submits.click(function() {
                var hidden = document.createElement('input');
                hidden.type = 'hidden';
                hidden.name = this.name;
                hidden.value = this.value;
                this.parentNode.insertBefore(hidden, this)
            });
            $(this).submit(function() {
                submits.attr("disabled", "disabled");
            });         
            $(window).unload(function() {
                submits.removeAttr("disabled");
            })
         }); 
    }
})(jQuery);
2) 添加到您的HTML:

<script type="text/javascript">
    $(document).ready(function(){
        $('#contact_frm ).enhanceBehaviour();
    });
</script>

<form id="contact_frm" method="post" action="/contact">
   <input type="submit" value="Send" name="doSend" />
</form>

$(文档).ready(函数(){
$('#contact_frm).enhanceBehavior();
});

完成:)

您需要在浏览器中处理后退/后退按钮。 下面的示例

1) 创建form.js:

(function($) {
    $.enhanceFormsBehaviour = function() {
        $('form').enhanceBehaviour();
    }

    $.fn.enhanceBehaviour = function() {
        return this.each(function() {
            var submits = $(this).find(':submit');
            submits.click(function() {
                var hidden = document.createElement('input');
                hidden.type = 'hidden';
                hidden.name = this.name;
                hidden.value = this.value;
                this.parentNode.insertBefore(hidden, this)
            });
            $(this).submit(function() {
                submits.attr("disabled", "disabled");
            });         
            $(window).unload(function() {
                submits.removeAttr("disabled");
            })
         }); 
    }
})(jQuery);
2) 添加到您的HTML:

<script type="text/javascript">
    $(document).ready(function(){
        $('#contact_frm ).enhanceBehaviour();
    });
</script>

<form id="contact_frm" method="post" action="/contact">
   <input type="submit" value="Send" name="doSend" />
</form>

$(文档).ready(函数(){
$('#contact_frm).enhanceBehavior();
});
完成:)