我正在處理這個腳本,並且由於某種原因,它的行爲就好像fn.style.borderColor總是等於#F00。我只想要第二個執行,當且僅當第一個if已經執行。JS if if not working properly
function vfn() {
if (fnl<1){
na.innerHTML= "This field is required.";
fn.style.borderColor="#F00";
}
else if (fn.style.borderColor="#F00" && fnl>1) {
if(lnl>1){
na.innerHTML= "OK";
setTimeout("na.innerHTML = ''",1500)
}
fn.style.borderColor="#0F0";
setTimeout("fn.style.borderColor='';",1500)
}
return false
}
我試過使用變量,做了這樣的事情,但它根本不起作用。
var error = 1
if (error = 1) {
alert("error1");
var error = 2
}
else if (error == "2") {
alert("error2")
var error = 1
}
那麼我該如何做這項工作?
------------------------------- >>編輯< < ---- --------------------------------
好了,我把它改成這個
function vfn() {
if (fnl<1){
na.innerHTML= "This field is required.";
fn.style.borderColor="#F00";
}
else if (fn.style.borderColor == "#F00" && fnl>1){
if(lnl>1){
na.innerHTML= "OK";
setTimeout("na.innerHTML = ''",1500)}
fn.style.borderColor="#0F0";
setTimeout("fn.style.borderColor='';",1500)
}
return false}
以及發生的情況是當字段爲空時邊界顏色變爲紅色,這是應該發生的情況,但是當字段填充正確時,它被SUPPOSED變爲綠色,然後在1.5秒後,切換回默認情況下,但實際發生的情況是它保持紅色,就好像它忽略了else代碼塊,即使該字段是alrea dy red(fn.style.borderColor =「#F00」)。
嗯,我們已經*全部*的那些有趣的地方之一,至少有一千倍...... =) – 2010-12-05 18:15:06
更好的是,使用`===`而不是`==`。 – 2010-12-05 18:16:17