0

jQueryでシンプルなフォームバリデーターを作りたい

$('#clients_name').keyup(function(){
    if($('#clients_name').val().length >= 2){
      (...)
    }
});

しかし、もっと多くの入力 (テキスト、選択...) をチェックしたいのですが、最初の行をどのように変更して、フォームの入力に対して普遍的なアクション「キーアップ」(または何か) を作成する必要があるのか​​ わかりません。これは入力=テキストには適していますが、選択には適していません...

$('input[type=text],select').keyup(function(){
    if($('#clients_name').val().length >= 2){
      (...)
    }
    if($('#clients_street').val().length >= 2){
      (...)
    }
});
4

2 に答える 2

2

単に使用するThis

$('input[type="text"]').keyup(function(){   // $('select,input[type="checkbox"]').on('change',function(){
    if ($(this).val().length >= 2) {
      (...)
    }
    //Or can be
    if (this.value.length >= 2) {
      (...)
    }
});

ただし.keyup、テキストボックスでのみ機能します。選択ボックスとチェック、ラジオのいずれかに .on('change',function(){..}) を使用する必要があります。

于 2013-08-03T08:31:00.613 に答える
0

thisに渡されたコールバック関数のコンテキストは.keyup()、現在の DOM 要素に設定されます。単に参照してくださいthis。ただし、要素はイベントselectをトリガーしません。keyupだから私はあなたがそこにあるものを次のように変更します:

$('input[type=text], select').on("change", function(){
    if(this.value.length >= 2){
      // do your validation
    }
});
于 2013-08-03T08:32:47.383 に答える