gpt4 book ai didi

javascript - JS if 语句无法正常工作

转载 作者:行者123 更新时间:2023-11-28 12:48:52 27 4
gpt4 key购买 nike

我正在编写这个脚本,由于某种原因,它的表现就好像 fn.style.borderColor 始终等于 #F00。我想要的只是当且仅当第一个 if 已执行时才执行第二个 if 。

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}

发生的情况是,当字段为空时,边框颜色更改为红色,这是应该发生的情况,但是当字段正确填写时,应该更改为绿色,然后在 1.5 秒后,更改回到默认值,但实际发生的情况是它保持红色,就好像它忽略了 else if 代码块,即使该字段已经是红色的(fn.style.borderColor =“#F00”)。

最佳答案

常见错误/拼写错误:您使用的是 = (赋值)而不是 == (比较)。变化:

else if (fn.style.borderColor="#F00"

else if (fn.style.borderColor=="#F00"
<小时/>

更新:我建议尝试您以前使用额外变量的方法,尽管您可能遇到过类似的错误,导致它之前无法工作。尝试存储指示状态的标志,而不是显式比较 borderColor,因为浏览器可能会将其内部表示从 #F00 更改为其他内容:

var isRed = false;
function vfn() {
if (fnl<1){
na.innerHTML= "This field is required.";
fn.style.borderColor="#F00";
isRed = true;
}
else if (isRed && fnl>1) {
if(lnl>1){
na.innerHTML= "OK";
setTimeout("na.innerHTML = ''",1500)
}
fn.style.borderColor="#0F0";
isRed = false;
setTimeout("fn.style.borderColor='';",1500)
}
return false
}

关于javascript - JS if 语句无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4360351/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com