2012-03-26 2 views
0

"mail_not_valid"id를 가진 범위의 innerHTML을 "that does not right right"로 설정하는 함수를 작성했습니다. 사용자가 잘못된 전자 메일 주소를 보내려고합니다. 잘 작동합니다. 다른 함수는 입력 필드를 지우고 onfocus에 의해 트리거됩니다. 세 번째 함수는 onblur에 의해 트리거되고 사용자가 아무 것도 입력하지 않은 경우 입력 필드를 원래 값으로 다시 설정합니다. 이제 문제는 다음과 같습니다. 사용자가 필드를 클릭 (-> 지워짐)하고 유효하지 않은 전자 메일 (-> span이 표시됨)을 입력 한 다음 항목을 삭제하고 양식을 나가면 범위가 그대로 유지됩니다.onblur에 의해 트리거 된 javascript 함수는 경고를 표시하지만 요소의 innerHTML을 변경하지 않습니다.

이제 document.getElementById ("mail_not_valid")를 바꿉니 다. innerHTML = ""; 알림이 표시되면 알림이 표시됩니다. 그래도 innerHTML을 변경해도 작동하지 않습니다.

편집 : 사용자가 이미 뭔가를 쓴 경우 내가 바보, 그것은 작동하지 않을 수 있습니다 경우

<input onblur="OnBlurCondition (this, 'subscribe to the e-mail newsletter')"> 

<script language="javascript"> 
function OnBlurCondition (feld, inhalt) { 
     if (!(feld.value)){ 
       feld.value = inhalt; 
       if (document.getElementById("mail_not_valid").innerHTML == "that doesn't seem right."){ 
        document.getElementById("mail_not_valid").innerHTML = ""; 
       } 
     } 
} 
</script> 
+1

그냥 오타지만, 귀하의 예제에서 당신은 비교 연산자 ('==')보다는 할당 연산자를 사용하는 경우 확실하지 innerHTML = ""에 ('='). – scottm

+0

HTML에 실제로 id가 'mail_not_valid' 인 요소가 포함되어 있습니까? 콘솔에 오류가 있습니까? –

+0

alert를 사용하거나 console.log (document.getElementById ("mail_not_valid"). innerHTML을 사용하여 비교 대상과 동일한 지 확인하십시오.)이 시나리오에서는 공백/줄 바꿈 등이 있으면 비교가 취소됩니다 그들이 정확히 일치하지 않는 한 – Brian

답변

2

당신은 오타가 ((feld.value)!). 다음과 같아야합니다.

if (document.getElementById("mail_not_valid").innerHTML == "that doesn't seem right."){ 
    document.getElementById("mail_not_valid").innerHTML = ""; 
} 

단일 등호에 유의하십시오.

또한 코드를 복사하거나 붙여 넣지 마십시오. 알맞은 편집기/IDE를 사용하십시오. 복사/붙여 넣기가 어렵습니다! :)

+0

나는 이미 +1 하겠지만 만약 내가 복사/붙여 넣기 덧글에 대한 다른 수 있습니다! –

+0

@ TravisJ : thanks :) –