0

私は非常に単純な質問で立ち往生しました.

私はその順序でフォームを持っています:

  • Eメール、
  • pw1、
  • pw2、
  • ユーザー名 (オプション)

フォーム全体が .validate() で検証され、うまく機能し、素敵なエラー メッセージなどが表示されます。

私が達成できなかった 1 つのことは、次のとおりです。メール、pw、および pw2 の値が有効な場合にのみ、ユーザー名のテキスト フィールドが表示されるようにします。

div class="reguser" style="display:none;" 内にユーザー名を入力しています。

次のような .valid() メソッドを試しました。

if ($('#passwort').valid() && $('#passwort2').valid() && $('#email').valid()) {
    $('.reguser').show();
};

それはまったく機能しません.valid()が最初にエラーメッセージで強調表示され、有効な値を入力することで有効になっている場合、すべてのフィールドが表示され.reguserません

また、有効なクラスをキャッチしようとしましたが、onfocusoutなどのイベントでこれを行う必要があると思います

if ($('#passwort').hasClass('.valid') && $('#passwort2').hasClass('.valid') && $('#email').hasClass('.valid')) {
    $('.reguser').show();
};

誰かが私にヒントを持っていますか? 何時間もインターネットを検索していますが、進展がありません

4

1 に答える 1

1

ユーザー名フィールドを表示するにはすべての必須フィールドが必要なので、フォーム全体が有効かどうかを確認できます。

$('#formId :input').on('blur', function(){
    if($('#formId').valid())
    {
        $('.reguser').show();
    }
});

blur希望のイベントに変更できます。

于 2012-12-26T13:24:09.007 に答える