2017-02-18 10 views
0

入力フィールドが2つ以上あるフォームがあります。許可されるべきフォーマットは、hh:mm/h:mmです。だから私はすでにフォーマットが入力時に真実であれば、自分の入力をチェックする関数を持っています。jQuery複数の入力と1つの関数RegExp

私が望むのは、送信ボタンをクリックすると、フォーマットが正しいかどうかをすべてチェックしたいと思います。 trueの場合はsubmit();そうでなければalert()か何か。しかし、それは問題ではありません。

どのように私はこれを実現することができません。それは驚くほど簡単です

function validateAbs(inputField) { 

       var isValid = /^([0-1]?[0-9]|2[0-3]):([0-5][0-9])(:[0-5][0-9])?$/.test(inputField.value);  
       if (isValid) { 
        inputField.style.backgroundColor = '#bfa'; 
       } else { 
        inputField.style.backgroundColor = '#fba'; 
       } 

       return isValid; 
      } 



      $(function(){ 
       $('#ist').on('input', function() { 
        //This is one of ne hh:mm Textboxes 
        validateAbs(this); 
       }); 
      }); 

      $(function(){ 
       $('#abssubmit').on('input', function() { 
        //This is my Submit-Button 
       }); 
      }); 

答えて

0

):)事前にありがとう:

$('#abssubmit').on('input', function() { 
    $("selector-for-the-inputs-you-want-to-check").each(function() { 
     validateAbs(this); 
    }); 
}); 

あなたがそれらのいずれかが無効であるかどうかを知りたい場合は、filter使用することができます。

$('#abssubmit').on('input', function() { 
    var invalidFields = $("selector-for-the-inputs-you-want-to-check").filter(function() { 
     return !validateAbs(this); 
    }); 
    if (invalidFields.length) { 
     // At least one field was invalid 
    } 
}); 
+0

すごく速かった! :Dありがとう!しかし、私はまだ問題があります。 3つのボックスがある場合 第1ボックス:2:14 第2ボックス:空 第3ボックス:14:12 私は真、偽、真です。どうやってそれらを組み合わせることができるのか教えてもらえますか?しかし、すべての箱が真実よりも正しい時は? :) – PasiB

+0

@PasiB:これは、上記の答えの第2の部分で、 'filter'です。例えば、 '!invalidFields.length'は、それらがすべて有効であれば' true'、いずれかが無効であれば 'false'になります。 –

+0

はい前にページを更新せずに入力しました。 ありがとうございました!できます! :) – PasiB

0

ます'input'ハンドラではなくサブミットハンドラに変更する必要があります:

$('#abssubmit').on('submit', function(ev) { 
    var isValid; 
    ev.preventDefault(); // to stop the form from submitting 
    $('#ist').each(function() { 
     if (!validateAbs(this)) isValid = false; 
    }); 
    if (isValid) { 
     this.submit(); // all the validations succeeded 
    } 
}); 
+0

はい、間違ってコピーしました。しかし、あなたのソリューションは私のために働く!ありがとう! – PasiB

関連する問題