1

私はvalidate.jsを試してみましたが、セットアップして検証しましたが、検証後にフォームをデータベースに投稿する方法がわかりません。データベースはすべてセットアップされ、(Postgres を使用して) すべてが完了しましたが、validate.js が干渉してフォームを投稿できません。

<script>
new FormValidator('contact', [{
    name: 'name',
    rules: 'required'
}, {
    name: 'email',
    rules: 'required|valid_email'
}, {
    name: 'message',
    rules: 'required'
}, {
    name: 'minlength',
    display: 'min length',
    rules: 'min_length[8]'
}], function(errors, event) {
    var SELECTOR_ERRORS = $('.error_box'),
    SELECTOR_SUCCESS = $('.success_box');

    if (errors.length > 0) {
    SELECTOR_ERRORS.empty();

    for (var i = 0, errorLength = errors.length; i < errorLength; i++) {
        SELECTOR_ERRORS.append(errors[i].message + '<br />');
    }

    SELECTOR_SUCCESS.css({ display: 'none' });
    SELECTOR_ERRORS.fadeIn(200);
    } else {
    SELECTOR_ERRORS.css({ display: 'none' });
    SELECTOR_SUCCESS.fadeIn(200);
    }

    if (event && event.preventDefault) {
    event.preventDefault();
    } else if (event) {
    event.returnValue = false;
    }
});
</script>

これは検証スクリプト用に用意したものですが、現時点では、フォームが検証されたときに発生するのは表示のみです。success_box という div から削除されるものはありません。

基本的に、フォームが正常に完成したら、フォームデータを投稿する方法を尋ねています。誰かが必要に応じてフォームを投稿できますが、validate.js を削除すれば既に機能しているため、現時点では必要ありません。

ありがとう!

4

1 に答える 1

1

おっと、ごめんなさい。将来、他の誰かがこの問題を抱えている場合、次の行が原因でフォームは送信されません。

if (event && event.preventDefault) {
        event.preventDefault();
        } else if (event) {
        event.returnValue = false;
        }

それを取り除くと、あなたは元気になるはずです。

申し訳ありません。

于 2012-11-30T00:51:35.537 に答える