在表单提交上禁用提交按钮的问题

时间:2009-03-19 10:54:39

标签: javascript jquery html forms javascript-events

问候

我在提交插件上使用jquery disable但是我遇到了问题。如果我禁用提交按钮,他们不会传回服务器,所以我不知道按下了哪个按钮。这是正常的吗?我有什么可以做的吗?

我真的不想重新调整我的网站,所以我必须在表单提交上设置一个变量来告诉按下哪个按钮。

有什么想法吗?

4 个答案:

答案 0 :(得分:3)

How to Disable the Submit Button of a Web Form

此方法隐藏按钮而不是禁用它,并以编程方式插入禁用的< button>标记使显示就像提交按钮被禁用一样。效果很好。

答案 1 :(得分:0)

您可以通过jquery进行提交,然后禁用该按钮:

<input type="submit" value="do it!" onclick="$('#mainform').submit(); $(this).attr('disabled','disabled' ); $('#pleasewait').show();" />

编辑: 我忘了form.submit()不是异步的。您可以改为执行ajax请求:

$.ajax({
url: "someurl",
type:"POST",
cache: false,
dataType: "json",
success:gotIt,
async:true,
timeout:240000,
error:ajaxError,
data:$("#mainform").serialize()
}); 

或者你可以只是.hide()按钮,或点击它后设置一个非功能性的onClick()处理程序并将其设置为看起来已禁用。

答案 2 :(得分:0)

以下是我在a jQuery forum中找到的解决方法:

<script type="text/javascript">
    $(document).ready(function() {
        $("#sendSearch").click(function() {
            $('#loadingDiv').show();
            $('#sendSearch').attr("disabled", "disabled");

            // these two lines are the workaround
            this.form.submit();
            return true;
        });
    });
</script>

答案 3 :(得分:0)

更简单:)

var formid="#id-form-if-exists"; //Put here the id if exists
$("form"+formid).submit(function(){$("form"+formid+" input").attr("disabled",false);});

YEAH