0

jquery validateEngineプラグインを使用してマルチパートフォームを検証しようとしています。すべてのフィールドでフォームを正しく検証できますが、さらに一歩進んで、組み込みのajax検証を使用したいと思います。データベースと比較して名前が一意かどうかを確認したい。この関数は正しく機能し、期待どおりの結果が得られますが、フォームを送信できず、フォームのFirebug Consoleで検証を実行すると、すべてのフィールドが正しい場合でもfalseとして検証されます。

ajax検証を削除すると、フォームは正しく検証されるため、このスクリプトのどこかに偽のフラグが設定されていますが、どこを見たり、乗り越えたりするのかわかりません。

検証は次のように初期化されます。

if ($.validationEngine) {
        form.validationEngine();
    }

そして私が言うように、通常の検証は機能します。

私は自分のフォームでクラスを次のように設定しました:

class="input validate[required, ajax[ajaxNameCallPhp]]"

このメソッドに関連する検証エンジンのスクリプトは、次のように変更されました。

"ajaxNameCallPhp": {
// remote json service location
"url": "http://localhost/greenFees/includes/lib/greenFee/checkName.php",
// error
"alertText": "* This name is already taken",
    "alertTextOk": "* This name is available",
"alertTextLoad": "* Validating, please wait"
                },

この問題で感謝される助け

4

1 に答える 1

0

わかりました-数時間後にスクリプトをfirebugに記録した後、これを機能させることができました...

ともかく。ある種の犯人は、フォームをウィザードに変えるフォームウィザードという別のスクリプトで部分的に行われています。これは、クリックすると検証を実行する次のボタンを追加します。何らかの理由で、そこから呼び出されたときの検証は、フォームの送信とは異なる動作をします。ajax 検証では、名前が OK の場合、既に使用されている場合はフラグを表示するか、検証時に通知を表示します。解決策 1: ウィザード スクリプトを削除しますが、フォームが正しく動作しません 解決策 2: 通知 alertTextLoad を削除します - 検証がこのフラグの存在を情報ではなくエラーとして扱っているようです - 削除すると、ウィザード Ta を維持できます

于 2013-02-25T20:01:55.527 に答える