我有一個問題;出於某種原因,我的函數在頁面加載時在web應用程序的開始時被調用。函數在頁面加載開始時調用 - 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
)。然後,一旦我在我的文本框中輸入文本,它不會改變,它仍然保持紅色,並顯示錯誤。
這就是我如何調用該函數:
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();
}
我不明白爲什麼它被立即調用的頁面加載,因爲它的設置,被稱爲onblur
。 任何人都可以提出解決這個問題的方法嗎?
你能用JSfiddle來描述嗎? – Laughing