jQuery data-action =“save”按钮不发布特定浏览器

时间:2014-04-28 19:23:13

标签: jquery html5

我有一个表单,用于捕获签名并将其发布到mvc4控制器操作。它完全适用于IE,但不适用于Chrome或某些移动设备。任何想法为什么它不发布,或在某些设备上提交表格?

以下是相关代码:

<form action="/Capture/Save" id="formSig" method="post">
    ...
    <button id="btnSave" class="button save" data-action="save" 
       onclick="return SaveButton_Click();">Save</button>
</form> 

<script type="text/javascript">
    function SaveButton_Click() {
        $("#btnSave").attr('disabled', 'disabled');
        return true;
    }
</script>

1 个答案:

答案 0 :(得分:2)

通过禁用该按钮,您实际上取消了发生的提交事件(仅在我自己的Chrome中测试过,1个负面结果对我来说已经足够)。您应该使用submit事件来禁用该按钮。

http://jsfiddle.net/7D7zj/

<form action="javascript:alert('Hello World!')" onsubmit="return FormSig_Submit()" id="formSig" method="post">
    ...
    <button id="btnSave" class="button save" data-action="save">Save</button>
</form>

<script>
    function FormSig_Submit() {
        $("#btnSave").attr('disabled', 'disabled');
        return true;
    }
</script>

在我看来,不使用内联事件和.prop代替.attr也会更好。

<form action="javascript:alert('Hello World!')" id="formSig" method="post">
    ...
    <button id="btnSave" class="button save" data-action="save">Save</button>
</form>

<script>
    $(document).ready(function(){
        $("#formSig").submit(function(){
            //$("#btnSave").attr('disabled', 'disabled');
            $("#btnSave").prop('disabled', true);
        });
    });
</script>