在表单验证后单击时禁用提交按钮

时间:2013-07-08 11:20:05

标签: javascript jquery html

我有一个表单,它有一个jquery表单验证..我需要的是当我在验证完成后提交表单时,提交按钮应该被禁用..

<form action="#" method="post" id="myform" name="myform">
    Location: <input name="location" type="text" />
    Site: <input name="site" type="text" />
    Age: <input name="age" type="text" />
    Gender <input name="gender" type="text" />
    <input name="button" type="submit" class="myButton" id="button" value="Submit" />
</form>

这是我的表单JsFiddle

4 个答案:

答案 0 :(得分:4)

不确定为什么要禁用提交按钮但是使用jQuery可以

$('input[type="submit"]').prop('disabled',true);

通常你要么没有提交按钮,要么提交表格,页面会重新加载!

<强>更新

要阻止人们通过在评论中写入时刷新页面来重新发布值,请将用户重定向到未发布值的页面!

 header('/same_page.php');

答案 1 :(得分:1)

您想在form.submit上执行操作。不确定你是否需要添加form.valid()作为检查,但我总是那样做。之后你可以返回true或false。

  • True:浏览器继续执行
  • 形式中指定的链接和操作
  • 错误:浏览器停止(当您有验证错误时)

这里是代码:

$('#myform').submit(function() {
    if (!$('#myform').valid()) return false;

    $('#myform input[type=submit]').attr("disabled", "disabled");
    return true;
});

我还用这个代码更新了你的小提琴,所以你可以尝试一下

答案 2 :(得分:1)

验证表单后,使用:

$( "#button" ).click(function(event) {
        if($('#myform').valid()) {
            $(event.target).attr("disabled", "disabled");
        }
    });

答案 3 :(得分:0)

如果要在要验证的表单有效后禁用,则可以禁用这样的提交按钮

$("#myForm").validate({
  submitHandler: function(form) {
    // do other stuff for a valid form
    $('#myform input[type=submit]').attr("disabled", "disabled");
    form.submit();
  }
});