2017-10-20 117 views
3

這是jquery腳本。驗證工作,但是,如果您將一個字段留空,然後單擊字段到表單上,則所有驗證消息都會顯示在表單中的每個字段中,而不僅僅是空的字段。以及如何以我的示例中的格式驗證jQuery中的電子郵件地址?任何任何想法?感謝您的幫助提前爲什麼所有的驗證都發生在同一時間

$(document).ready(function() { 
$('#firstname').on('blur', function() { 
    if ($('#firstname').val() == '') { 
     $('.errorMsg').show(); 
    } else { 
     $('.errorMsg').hide(); 
    } 
    }); 
    $('#lastname').on('blur', function() { 
    if ($('#lastname').val() == '') { 
     $('.errorMsg').show(); 
    } else { 
     $('.errorMsg').hide(); 
    } 
    }); 
    $('#email').on('blur', function() { 
    if ($('#email').val() == '') { 
     $('.errorMsg').show(); 
    } else { 
     $('.errorMsg').hide(); 
    } 
    }); 
    $('#roomtype').on('blur', function() { 
    if ($('#roomtype').val() == '') { 
     $('.errorMsg').show(); 
    } else { 
     $('.errorMsg').hide(); 
    } 
    }); 
}); 
+1

什麼是您的html? –

+0

\t 名字需要 \t 在形式,這是什麼名字,姓氏,電子郵件和roomtype一切的樣子,只是id和標籤相應 – Smith

回答

1

,因爲你正在使用$('.errorMsg').show();將針對所有班級,名字= errorMsg

確保每個驗證只針對特有的錯誤消息

使用$(this).next(".errorMsg").show();$(this).next(".errorMsg").hide();每個輸入

例如:

if ($('#email').val() == '') { 
     $(this).next(".errorMsg").show(); 
    } else { 
     $(this).next(".errorMsg").hide(); 
    } 

電子郵件驗證實例:

$('.errorMsg').hide(); 
 

 
$('#email').on('blur', function(event) { 
 
    if (event.target.checkValidity()){ 
 
    $(this).next('.errorMsg').hide(); 
 
    } else { 
 
    $(this).next('.errorMsg').show(); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<form id="myform"> 
 
    <input id="email" type="email" placeholder="your email"> 
 
    <span class="errorMsg">Not Valid!!!!!!!!!!!</span> 
 
</form>

+0

這工作改變了,謝謝你。你知道我可以如何爲電子郵件地址添加適當的驗證,以便它需要採用正確的格式嗎? – Smith

+0

@Smith不要關閉輸入標籤,有禁止關閉的標籤:'img,input,br,hr,meta'等。 –

+0

@Smith'' –

相關問題