간단한 로그인 양식이 있으며 표시 할 오류가있을 때 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>
본질적으로
는 다음 이메일에 대한 레이블은 오류로 대체됩니다. 하지만 일단 유효한 입력이 있으면 원래 레이블을 되돌리려합니다. 어떤 제안에 미리
감사합니다, 당신은로 removeChild (라벨)을 시도하고 그것에 때 오류 정확도는을 새로 첨부 할 수 있습니다
것이 가능하지 않을 수 있습니다,하지만 당신은'highlight'과'unhighlight' 기능을 주위 바이올린, 그에서 이전 라벨을 저장할 수있는, 그것을 '하이라이트 (unhighlight)'에 다시 설정하십시오. – Ryley
답장을 보내 주셔서 감사합니다. 실제로 이전 레이블을 오류 레이블로 바꾸지 않고 error.appendTo (element.prev()) 및 errorElement : "span"을 사용하여 해당 레이블에 스팬을 추가한다는 절충안을 실제로 만들었습니다. 이상적이지는 않지만 최소한 스팬이 나타나면 오류 코드는 원하는 위치에 있고 사라지면 레이블은 그대로 유지됩니다. 방금 레이블과 오류가 서로 문장을 완성하도록했습니다 ... 예 : "전자 메일 주소"가 필요합니다. " 또는 "전자 메일 주소" "형식이 올바르지 않습니다." (PS : 슬프게도, linebreaks가 작동하지 않는 것 같습니다) – Shikarnov
아, 그건 괜찮은 해결책입니다, 나는 동의합니다 ... 당신 자신의 질문에 대한 답변을 게시하고 승인 된 것으로 표시하는 것이 좋습니다 (이것은 100입니다 % OK StackOverflow에서). 그런 식으로이 질문을하는 다른 사람들은 좋은 대답을 알게 될 것입니다. – Ryley