2015-08-17 35 views
4

我正在製作一個表單,我在其元素上使用required屬性。現在考慮以下情況 -html5所需的屬性來激發jquery事件

表單分爲兩個選項卡,分別爲General DetailsAdditional Details。因此,如果我在可見選項卡上將必填字段留空,則提交表單時用戶可以查看該消息。但假設用戶位於第一個選項卡上,第二個選項卡上出現錯誤,則用戶無法查看錯誤彈出窗口,並且他對錶單未提交的原因不知情。

現在我正在尋找一種可以觸發jQuery事件的方式,只要所需的屬性錯誤來自

所以在這個事件中,我可以編程來顯示出現錯誤的標籤。

請注意我知道我可以使用基於JS/jQuery的表單驗證,但最主要的是,此表單由Grails生成,並且必填字段根據數據庫自動應用。所以我不能使用基於每個表單的JS驗證。

+0

無效的HTML領域做得到:無效的僞類,你prolly可以制定出與東西嗎? – user3154108

+0

Thankyou快速回復。但抱歉,它不適用於'required'屬性。如果我們在'type =「email」'裏面的'abc'的字段中輸入錯誤的數據,':invalid'就起作用。鏈接 - http://davidwalsh.name/demo/valid-pseudo-class.php – Chetan

+0

一旦必需字段嘗試提交或失去焦點而沒有值,它確實會得到:無效僞類旁邊的:必需僞類。這是有道理的,導致沒有價值的必填字段是無效的。 – user3154108

回答

2

看到所需場是如何選擇具有:無效的僞類:

jQuery(document).ready(function(){ 
 

 
    jQuery('button').on('click',function(){ 
 
    jQuery('input:invalid').css('background-color', '#F00'); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="required test"> 
 
    <input type="text" required="required" /> 
 
    <button>click</button> 
 
</form>

你可以簡單地檢查該字段的知名度,如果不給予遍歷到父標籤,給父母標籤一個類,標籤標籤包含一些無效的東西。

+0

謝謝!有效。我得到了所有':無效'元素,我可以遍歷它們。再次感謝 :-) – Chetan

0

的一種方法是使用提交按鈕,並調用myValidationFunction的JavaScript()方法爲行動。 (action="myValidationFunction();").

其他方法是使用按鈕並調用JavaScript的myValidationFunction()方法作爲該按鈕的Click事件。之後,在myValidationFunction()中,您可以使用checkValidity()方法一次或特定元素檢查表單的有效性,並運行自定義代碼以在特定選項卡上移動,如果有錯誤顯示給用戶。 function myValidationFunction() { if ($('#myInput')[0].checkValidity()) { // code to move to the particular tab } }