0

この jQuery Validation スクリプトを使用してフォームを送信していますが、メッセージを表示し、(送信後に) フォームを再度表示するには、スクリプトを微調整する必要があります。

http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/

^^コード

http://www.position-relative.net/creation/formValidator/demoSubmit.html

^^ デモ

デモを見ると、緑色のメッセージを表示し、フォームを(非表示にするのではなく)再度表示したいと思います..スクリプトのどこを変更するのかわかりません..ここにajax 送信機能を実行する JS コードのスニペット:

submitForm: function (caller) {
        if ($.validationEngine.settings.ajaxSubmit) {
            $.ajax({
                type: "POST",
                url: $.validationEngine.settings.ajaxSubmitFile,
                async: true,
                data: $(caller).serialize(),
                beforeSend: function () {

                },
                success: function (data) {
                    if (data == "true") { // EVERYTING IS FINE, SHOW SUCCESS MESSAGE
                        $(caller).css("opacity", 1)
                        $(caller).animate({
                            opacity: 0,
                            height: 0
                        },
                        function () {
                            $(caller).css("display", "none")
                            $(caller).before("<div class='ajaxSubmit'>" + $.validationEngine.settings.ajaxSubmitMessage + "</div>")
                            $.validationEngine.closePrompt(".formError", true)
                            $(".ajaxSubmit").show("slow")
                            if ($.validationEngine.settings.success) { // AJAX SUCCESS, STOP THE LOCATION UPDATE
                                $.validationEngine.settings.success && $.validationEngine.settings.success();
                                return false;
                            }
                        })
                    } else { // HOUSTON WE GOT A PROBLEM (SOMETING IS NOT VALIDATING)
                        data = eval("(" + data + ")");
                        errorNumber = data.jsonValidateReturn.length
                        for (index = 0; index < errorNumber; index++) {
                            fieldId = data.jsonValidateReturn[index][0];
                            promptError = data.jsonValidateReturn[index][1];
                            type = data.jsonValidateReturn[index][2];
                            $.validationEngine.buildPrompt(fieldId, promptError, type);
                        }
                    }
                }
            })
            return true;
        }
        if ($.validationEngine.settings.success) { // AJAX SUCCESS, STOP THE LOCATION UPDATE
            $.validationEngine.settings.success && $.validationEngine.settings.success();
            return true;
        }
        return false;
    },
4

1 に答える 1

1

更新されたifステートメントは次のようになります。

if (data == "true") { // EVERYTING IS FINE, SHOW SUCCESS MESSAGE
  $(caller).before("<div class='ajaxSubmit'>" + $.validationEngine.settings.ajaxSubmitMessage + "</div>")
  $.validationEngine.closePrompt(".formError", true)
  $(".ajaxSubmit").show("slow")
  if ($.validationEngine.settings.success) { // AJAX SUCCESS, STOP THE LOCATION UPDATE
    $.validationEngine.settings.success && $.validationEngine.settings.success();
    return false;
  }
}
于 2009-09-23T01:37:39.110 に答える