在 Google Chrome 上禁用按钮后 POST 不起作用

发布于 2024-12-15 16:47:08 字数 811 浏览 0 评论 0原文

我创建 ASP .NET MVC 应用程序。单击按钮时,我调用 JavaScript 来禁用同一按钮。 之后(按钮已禁用属性只读)后操作不会调用。当我删除禁用按钮的 JavaScript 时,一切都很好。这种情况仅发生在 Google Chrome 中。

当我在 Firefox 或 Internet Explorer 中尝试相同的示例时,一切都很好。

<script src="../../Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>

<script type="text/javascript">

    jQuery(document).ready(function () {
        Enable();
    });


    function Enable() {
        $('#btn').removeAttr('disabled');
        $('#btn').removeAttr('readonly');
    }

    function Disable() {
        $('#btn').attr('disabled', 'true');
        $('#btn').attr('readonly', 'true');
    }
</script>
<h2>Example</h2>

<form>
    <input id="btn" type="submit" value="StackOverflow" onclick="Disable()" />
</form>

I create ASP .NET MVC application. On button click I call JavaScript that disable same button.
After that (button has property readonly disabled) post action doesn't call. When I remove JavaScript that disable buttons everything is fine. This happens only in the Google Chrome.

When I try same example in Firefox or Internet Explorer everything is fine.

<script src="../../Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>

<script type="text/javascript">

    jQuery(document).ready(function () {
        Enable();
    });


    function Enable() {
        $('#btn').removeAttr('disabled');
        $('#btn').removeAttr('readonly');
    }

    function Disable() {
        $('#btn').attr('disabled', 'true');
        $('#btn').attr('readonly', 'true');
    }
</script>
<h2>Example</h2>

<form>
    <input id="btn" type="submit" value="StackOverflow" onclick="Disable()" />
</form>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

唔猫 2024-12-22 16:47:08

您需要在禁用按钮之前调用 form.submit() ,并从事件处理程序返回 false 。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">



<head>

<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />

<title>Untitled 1</title>

</head>



<body>

<script src="//code.jquery.com/jquery-1.4.4.min.js" type="text/javascript"></script> 



<script type="text/javascript"> 



    jQuery(document).ready(function () { 

        Enable(); 

    }); 





    function Enable() { 

        $('#btn').removeAttr('disabled'); 

        $('#btn').removeAttr('readonly'); 

    } 



    function Disable() { 

        $('#myform').submit();



        $('#btn').attr('disabled', 'true'); 

        $('#btn').attr('readonly', 'true'); 



        return false;

    } 

</script> 

<h2>Example</h2> 



<form id="myform" method="post"> 

    <input id="btn" type="submit" value="StackOverflow" onclick="return Disable()" /> 

</form> 



</body>



</html>

You need to call form.submit() before disabling the button, and return false from your event handler.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">



<head>

<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />

<title>Untitled 1</title>

</head>



<body>

<script src="//code.jquery.com/jquery-1.4.4.min.js" type="text/javascript"></script> 



<script type="text/javascript"> 



    jQuery(document).ready(function () { 

        Enable(); 

    }); 





    function Enable() { 

        $('#btn').removeAttr('disabled'); 

        $('#btn').removeAttr('readonly'); 

    } 



    function Disable() { 

        $('#myform').submit();



        $('#btn').attr('disabled', 'true'); 

        $('#btn').attr('readonly', 'true'); 



        return false;

    } 

</script> 

<h2>Example</h2> 



<form id="myform" method="post"> 

    <input id="btn" type="submit" value="StackOverflow" onclick="return Disable()" /> 

</form> 



</body>



</html>
失眠症患者 2024-12-22 16:47:08

尝试

function Disable() {
    $('#btn').attr('disabled', 'disabled');
    $('#btn').attr('readonly', 'readonly');

   $("form").submit();
}

编辑

change the `input` type to `button`

<form>
    <input id="btn" type="button" value="StackOverflow" />
</form>

$(function(e){
$("#btn").click(function(e){
e.preventDefault();
$(this).attr('disabled', 'disabled'); //if you can use latest version of jquery and use .prop("disabled",true)
$("form").submit();
});

});

try

function Disable() {
    $('#btn').attr('disabled', 'disabled');
    $('#btn').attr('readonly', 'readonly');

   $("form").submit();
}

edit

change the `input` type to `button`

<form>
    <input id="btn" type="button" value="StackOverflow" />
</form>

$(function(e){
$("#btn").click(function(e){
e.preventDefault();
$(this).attr('disabled', 'disabled'); //if you can use latest version of jquery and use .prop("disabled",true)
$("form").submit();
});

});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文