제목은 쉽게 보이지만 도움이 필요합니다.자바 스크립트로 입력 값을 변경하십시오.
사용자가 채울 때까지 값이 null 인 필드 입력 "email"이있는 양식이 있습니다.
function validate(){
var email=document.getElementById("email");
if(!(/[\w-\.]{3,15}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}/.test(email))) {
email.setAttribute('value','Insert a correct email');
email.style.border="2px solid red";
} else {
alert("Valid field"); // This is to test it works
email.style.border="2px solid #63ce40";
this.form.submit();
}
}
내가 여기서 뭘 원하는 것은 삽입 된 이메일이 요구 사항을 충족하지 않는 경우 (유효하지 않은)이다, 변화 : 좋아, 제출 버튼의 클릭에, I는 함수의 validate()를 호출 입력 값에 "올바른 이메일 삽입"을 입력하십시오.
필드가 비어 있고 제출을 클릭하면 완벽하게 작동하지만 텍스트를 삽입하고 제출을 클릭하면 유일한 변경 사항은 2px 빨간색 테두리를 가져 오는 필드가되지만 텍스트는 변경되지 않습니다.
나는 내가 작성한 잘못된 전자 메일을 제출할 때 제거되고 "올바른 전자 메일 삽입"텍스트로 교체되도록해야한다는 것을 알고 싶습니다.
<li>
<input type="text" id="email" name="email"
value="" onfocus="this.value=''" size="40"/>
</li>
그리고 내가 사용 버튼을 제출 :
입력은
<input id="bsubmit" type="button" value="Submit"
name="submit" onclick=";this.disabled=true;validate();
this.disabled=false;"/>
감사합니다.
**'email.value의 시도 = '시도! 당신은 돼지입니다! ''** ** setAttribute()는 엘레멘트의 속성을 설정하는 것과 같지 않습니다 (대부분의 경우). –
입력 메시지에 오류 메시지를 직접 쓰는 대신 오류 메시지에 자리 표시자를 사용하는 것이 좋습니다. –
예,이 디자인은 좋지 않습니다 ... 사용자가 방금 전에 입력 한 이메일 주소를 덮어 쓰면서 볼 수있는 기회를 제공하고, 문제를보고 수정합니다. –