我有一個簡單的登錄表單,並有jQuery驗證替換字段標籤,當有錯誤顯示。問題是,一旦錯誤被清除,標籤消失。我想找到一種方法來恢復到以前的標籤的內容,或重建標籤時字段是合法的......jQuery驗證:驗證後保留錯誤
這裏是我的代碼:
$(document).ready(function(){
$("#login").validate({
errorPlacement: function(error, element) {
element.prev().replaceWith(error);
},
rules: {
"email": {
required: true,
email:true,
},
"password": {
required: true,
minlength: 6
}
},
messages: {
email: {
required: "Please enter your email address.",
email: "Please enter a <u>valid</u> email address"
},
password: {
required: "Please enter your password.",
minlength: "Please enter a password with 6 characters or more."
}
},
});
});
和HTML:
<form name="login" id="login" method="post" action="authenticate.php">
<p>
<label for="email">Email Address:</label>
<input type="text" name="email" id="email" class="required email" />
</p>
<p>
<label for="password">Password:</label>
<input type="password" name="password" id="password" class="required" />
</p>
<p>
<input type="submit" value="Log In" id="submit" />
</p>
在本質上,當用戶提交表單,如果有在電子郵件字段中沒有數據,那麼對於電子郵件標籤獲取與錯誤所取代。但一旦它有了有效的輸入,我想要放回原始標籤。
在此先感謝您的任何建議,
ž
這是不可能的,但你可能會反覆折騰'highlight'和'unhighlight'功能,並從這些保存關閉舊標籤,並將其重新設置爲「unighighlight」。 – Ryley
感謝您的回覆。我實際上已經做出了一個妥協,而不是用錯誤標籤替換之前的標籤,而是使用error.appendTo(element.prev())和errorElement:「span」將跨度添加到該標籤中。 這並不理想,但至少出現跨度時,錯誤代碼就是我想要的位置,當它消失時,標籤保持不變。 我剛剛做了這樣的標籤和錯誤完成彼此像句子...例如,「電子郵件地址」「是必需的。」或「電子郵件地址」的格式不正確。「 (PS:很遺憾,看起來換行符不起作用) – Shikarnov
啊,這是一個體面的解決方案,我同意......我建議你發佈一個自己問題的答案,並將其標記爲已接受(這是100 %確定在StackOverflow)。這樣任何發現這個問題的人都會知道一個很好的答案。 – Ryley