2011-08-08 11 views
0

私は、3行3列テーブルの真ん中にあるtextexboxを持っています。 「外側の」表のセルは、テキストボックスに装飾を追加するために使用されます。テキストボックスに入力されたデータが無効な場合、テキストボックスの色は変化し、周囲の画像も変化します。ここに私の問題があります。ログインページには、ユーザー名texboxとパスワードテキストボックスがあります。もし私がフィールドに表示される画像が必要であるように、いずれもtexboxの色を書き換えずに提出すると、変更されます。私の問題は、ユーザーが何らかのテキストを入力したときにそれらを元の状態に戻す方法です。これを処理するために私自身のJavaScriptを書くことができましたが、アプリケーションの残りの部分と同様に、jQueryを使用して検証しています。何か案は?ここでjQuery Validationプラグイン(スタイル付きテキストボックス付き)

は、私が今取り組んでいるものです。

 $.APP.login = $("#logOnDiv > form").validate({ 
     errorPlacement: function (error, element) { 
      element.parents('table').removeClass('input-table'); 
      element.parents('table').addClass('invalid-input-table'); 
     }, 
     errorClass: "invalid-decorated-input" 
    }); 

答えて

0

keypressのようなテキストボックス自体のイベントに耳を傾けます。そこに自分自身をliveイベントを使用し、テキストボックスに無効なクラスを追加することでこれを行うには、より効率的な方法がありますが、これはあなたでない限り十分なはず

$('.isValidated').keypress(function() { 
    if($(this).val().length) { //we have text now 
    $(this).parents('table.invalid-input-table').removeClass('invalid-input-table'); 
    //put any other code to remove other html elements (like the images here) 
    //traversal would be from the text box, so you could do things like $(this).siblings('img').remove(), etc. 
    } 
}); 

...各テキストボックスはisValidatedというクラスを持っていると仮定すると、非常に多くの分野について話しています。

+0

返信いただきありがとうございます。私はそれが私が探しているものであるかどうかはわかりません。私は単純にクラスを使用してtexboxをターゲットにすることができますが、テーブル内のtextxboの画像も変更する必要があるため、これは役に立ちません。キープレスは、テキストが実際に入力されているという検証を提供していないため、私が探しているキープレスであることもわかりません。 – Nick

+0

私は答えをもっと堅牢に拡大しました。あなたの特定のDOMがなければ、これは私が得ることができるほど具体的です。 –

+0

これは動的で、各ページで使用できるという考えです。しかし、あなたの提案は私に思いつきました。私はこれを思いつきました.Ok、私はこのセクションに掲載されたコードを手に入れようとしています。基本的に私はあなたのコードのいくつかを、2つの変更を加えて使用しました。私は親を取り除き、それを最も近いものに置き換え、クラスを変更する関数でkeypressイベントのリスナーを追加します。 – Nick

関連する問題