0

フォームの送信を停止するには? フォームにいくつかの検証があり、入力が正しくない場合、フォームは送信されません...私のHTMLでは、送信をクリックすると次のようになります:

<a href="#" onclick="setTimeout(function(){document.getElementById('form_4').submit()}, 1000);" style="position:static" class="btn-more">Vælg</a>

そして、私のスクリプトは次のようになります。

$("#form_4 a.btn-more").click(function (e) {

    //Validate required fields
    for (i = 0; i < required.length; i++) {
        var input = $('#' + required[i]);

        if ((input.val() == "") || (input.val() == emptyerror)) {
            input.addClass("needsfilled");
            input.val(emptyerror);
            errornotice.fadeIn(750);
            e.stopPropagation();
            return false;
        } else {
            input.removeClass("needsfilled");
        }
    }
    //if any inputs on the page have the class 'needsfilled' the form will not submit
    if ($(":input").hasClass("needsfilled")) {
        return false;
    } else {
        errornotice.hide();
        return true;
    }
});
4

5 に答える 5

2

使用する :

e.preventDefault();  

クリック機能を閉じる前または開始時

$("#form_4 a.btn-more").click(function(e){  
    e.preventDefault();  
    //rest of the content
}

また、これまでの方法と同じように変更する必要がありsetTimeout functionます。これにより、常にフォームが送信されます。への変更 :

HTML :

<a href="#" style="position:static" class="btn-more">Vælg</a>

脚本 :

$("#form_4 a.btn-more").click(function (e) {

    //Validate required fields
    for (i = 0; i < required.length; i++) {
        var input = $('#' + required[i]);

        if ((input.val() == "") || (input.val() == emptyerror)) {
            input.addClass("needsfilled");
            input.val(emptyerror);
            errornotice.fadeIn(750);
            e.stopPropagation();
            return false;
        } else {
            input.removeClass("needsfilled");
        }
    }
    //if any inputs on the page have the class 'needsfilled' the form will not submit
    if ($(":input").hasClass("needsfilled")) {
        e.preventDefault();  
        return false;
    } else {
        errornotice.hide();
        return true;
    }
});
于 2013-08-28T10:24:02.743 に答える
-1
$(".form4").on("submit", function () {
});

値が false を返す場合、これは送信されていません

于 2013-08-28T10:25:20.023 に答える