我有一个表单,用于捕获签名并将其发布到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>
答案 0 :(得分:2)
通过禁用该按钮,您实际上取消了发生的提交事件(仅在我自己的Chrome中测试过,1个负面结果对我来说已经足够)。您应该使用submit事件来禁用该按钮。
<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>