문제가 있습니다. 어떤 이유로, 페이지가로드되는 동안 웹 응용 프로그램이 시작될 때 내 함수가 호출됩니다.페이지 로딩을 시작할 때 함수가 호출되었습니다 - javascript
function validateName(element) {
var len = element.value.length;
//checks if the code is than 6 characters
if (len == 0) {
element.style.backgroundColor="red";
if (element.id == "firstname")
{
document.getElementById('firstNameError').style.display = "block";
}
else if (element.id == "lastname") {
document.getElementById('lastNameError').style.display = "block";
}
return true;
} //if == 0
else {
element.style.backgroundColor="green";
if (element.id == "firstname")
{
document.getElementById('firstNameError').style.display = "none";
}
else if (element.id == "lastname") {
document.getElementById('lastNameError').style.display = "none";
}
return false;
} // if != 0
}
이 함수의 로직은 사용자가 자신의 이름을 입력 텍스트 상자를 확인하는 것입니다 다음과 같이
내 코드입니다. 기본적으로, 내가 직면하고있는 문제는 바로 내 웹 페이지를 열면 텍스트 상자가 빨간색으로 표시되며 '귀하의 이름은 비워 둘 수 없습니다!'라고 말합니다. (firstNameError
). 그런 다음 텍스트 상자에 텍스트를 입력하면 변경되지 않고 여전히 빨간색으로 유지되고 오류가 표시됩니다.
이 내가 함수를 호출하고 어떻게 :이 페이지가로드하자마자 호출되는 왜 그것이, 설정되어 onblur
를 호출 할 수 있기 때문에 내가 이해하지 못하는
function init() {
var firstName = initToolTip("firstname", "firstnameTip");
var lastName = initToolTip("lastname", "lastnameTip");
var promoCode = initToolTip("promocode", "promocodeTip");
//opens the TOS window when you click 'terms and conditions' link
document.getElementById("clickedTOS").onclick = function() { sAlert(document.getElementById("TOS").innerHTML) };
//checks the length of the promo code
promoCode.onblur = validatePromoCode(promoCode);
//checks the validity of a name (is not blank)
firstName.onblur = validateName(firstName);
lastName.onblur = validateName(lastName);
//document.getElementById('submitButton').onmousedown = validateForm();
}
. 누구든지이 문제를 해결할 방법을 제안 할 수 있습니까?
JSfiddle에서 설명 할 수 있습니까? – Laughing