我目前使用JQuery Validate插件以及一些提示插件來驗證表單。我還需要驗證電子郵件地址,其他只是檢查所有字段已填寫。我熟悉驗證rules
函數,但它會導致問題。JQuery通過電子郵件驗證驗證插件
一旦電子郵件評估爲無效,在我目前的實施中,所有以下文本字段顯示爲無效(通過生成插件提示),並導致所有後續字段有一個惱人的提示,說this field is required
用戶甚至有機會填寫它們。
我想知道是否有方法檢查我的電子郵件驗證功能是否在validate
調用中返回了true,如果它不返回true,則認爲表單無效。
後來我將需要實現一個密碼正則表達式函數,它將遵循相同的邏輯。
我的表單驗證
$(".form").validate({
errorPlacement: function(error, element) {
},
highlight: function(element, errorClass, validClass) {
$(element).css('border', '1px solid red');
$('.addlefttip').qtip({
position: {
my: 'middle left',
at: 'middle right'
},
show: {
event: 'focus'
},
hide:{
event: 'blur'
},
style: {
classes: 'qtip-blue qtip-shadow'
},
content: {
attr: 'alt'
},
});
$('.addtoptip').qtip({
position: {
my: 'bottom left',
at: 'top right'
},
show: {
event: 'focus'
},
hide:{
event: 'blur'
},
style: {
classes: 'qtip-blue qtip-shadow'
},
content: {
attr: 'alt'
},
});
},
rules: {
email: {
minlength: 5
}
},
unhighlight: function(element, errorClass, validClass) {
$(element).css('border', '1px solid #ddd');
}
});
我的電子郵件驗證:
$('.email-field').change(function(){
var email = $(this).val();
var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
if(re.test(email)) {
document.getElementById('result').innerHTML = '<span style="color:green; font-style:italic; font-weight:normal;"><img src="http://myhousesforsaleindetroit.com/wp-content/uploads/2012/08/green-check-mark.png"> valid';
} else {
document.getElementById('result').innerHTML = '<img src="http://upload.wikimedia.org/wikipedia/en/archive/8/89/20070603232424!RedX.png" style="width:15px; margin:-2px 0px 0px 0px;"/> invalid';
}
});
我明白任何建議!
非常感謝提前!
+1,謝謝你的回覆@Sparky。我沒有使用電子郵件規則,因爲任何時候我使用該規則並且規則評估爲無效,在無效電子郵件評估爲無效後的所有文本輸入,甚至在用戶有機會填寫之後。 Tooltipster是有趣的......看着它;) – AnchovyLegend 2013-04-08 01:23:36
@MiGusta,你描述的行爲不是插件的正常默認行爲。你能設置一個jsFiddle嗎? – Sparky 2013-04-08 01:56:33
你的權利,這不是最初的,但它是在我的情況,因爲我把'qtip'事件監聽器放到了用於驗證插件的'highlight'調用中......我將在今晚或明天晚些時候發佈jsFiddle 。謝謝。 – AnchovyLegend 2013-04-08 02:07:42