gpt4 book ai didi

javascript - 使用 JS 访问操作和值属性

转载 作者:行者123 更新时间:2023-12-02 23:08:02 25 4
gpt4 key购买 nike

let dealer={
name : document.getElementById('dealer-name'),
submit : document.getElementById('dealer-save'),
};
let dnames=['str', 'name'];

dealer.name.addEventListener('keyup', check);

function check(){

for (let i=0; i<dnames.length; i++){
if (dnames[i] === dealer.name.value) {
console.log('same');
dealer.submit.value = "Update";
} else {
dealer.submit.value = "Save";
}

};
}
<!DOCTYPE>
<html>
<body>
<form action="/php/newdealer.php" id="addDealer">
<input required type="text" id="dealer-name">
<input type="submit" value="Save" id="dealer-save">
</form>
</body>
</html>

代码摘要:

在网页中显示一个简单的表单,其中包含输入字段和提交按钮。每次在输入字段中输入一个字符时,都会执行 check() 函数。

如果输入字段中的值与 dnames[] 数组中的任何元素匹配,则提交按钮的值预计为“update”,并记录字符串“same”进入控制台,否则如果输入字段中的值与 dnames[] 数组中的任何元素都不匹配则提交按钮的值应为“保存”

问题:

当我在输入字段中输入“str”时,“相同”会按预期登录到控制台,但提交按钮的值不会更改为“更新”。为什么dealer.submit.value="Update"无法工作?

最佳答案

问题是你的循环在遇到正确答案后继续运行。

  1. str 是数组中的第一个元素,因此它将按钮值更新为“Update”
  2. 循环转到数组中的下一个值,name
  3. 它与输入值不同,因此会将按钮值更新回“保存”

一切几乎立即运行,因此看起来没有上传。

您可以在为按钮分配“更新”后添加breakreturn来解决此问题,如下所示:

let dealer={
name : document.getElementById('dealer-name'),
submit : document.getElementById('dealer-save'),
};
let dnames=['str', 'name'];

dealer.name.addEventListener('keyup', check);

function check(){

for (let i=0; i<dnames.length; i++){
if (dnames[i] === dealer.name.value) {
console.log('same');
dealer.submit.value = "Update";
break; // add this to your code
} else {
dealer.submit.value = "Save";
}

};
}

关于javascript - 使用 JS 访问操作和值属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57499238/

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