2017-02-18 127 views
0

我有一個表單有多個輸入域。應該允許的格式是hh:mm/h:mm。所以我已經有了一個函數,它檢查我的輸入,如果輸入的格式是真的。jQuery多輸入一個函數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個盒子 第一個盒子:2:14 第二個盒子:空的 第三個盒子:14:12 我得到了真實的,錯誤的,真實的。你能告訴我怎樣才能把它們結合起來,所以它是錯誤的。但是,當每個Box不是正確的? :) – PasiB

+0

@PasiB:這是上面答案的第二部分,用'filter'。例如,'!invalidFields.length'如果全部有效的話將是'true',如果它們中的任何一個都是無效的''false'。 –

+0

是的,我沒有刷新頁面之前輸入它。 非常感謝你!有用! :) – PasiB

0

你將需要更改爲提交處理程序而不是「輸入」處理程序:

$('#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