0

私が使用するjavascript/jQueryの二重送信防止方法は次のとおりです。

$("#btnsubmit").click(function () {
    $("#btnsubmit").attr('disabled','disabled');
    $('#postform').submit();
});

したがって、submitclickでは、フォームは送信Submit Buttonされます。disabledしたがって、フォームの二重送信は発生しません。しかし。現在の問題は、html5 属性が開始されないことです (例: Required、Pattern など)。

これを修正する方法について誰かアイデアがありますか?

または、html5 属性を改ざんしない代替の二重送信防止方法を提案できますか?

編集 + ダニエル・パッツ 回答:

$('#postform').on('submit', function (e) {
    // THIS PART
    var titleLength = $("#title").val().length;
    var descriptionLength = $("#description").val().length;
    if(titleLength < 20 || descriptionLength < 150) {
        $("#ps").text("Title and Desc Problem.");
    } else {
    // UNTIL HERE
        $('[type="submit"]').prop('disabled','disabled');
    }
});
4

1 に答える 1

4

submitイベントをキャッチすれば、うまくいくはずです。http://jsfiddle.net/tcc7u/

HTML:

<form>
    <input required /><br />
    <input type="submit" />
</form>

JS:

$('form').on('submit', function (e) {
    $('[type="submit"]').prop('disabled','disabled');
});
于 2013-05-11T06:22:41.803 に答える