[英]Value of input is text not changing
我有以下代碼
//main.js var textinput = document.getElementById('textinput').value; function textChanger() { setTimeout(function() { textinput = 'newtext'; }, 3000); }
<.doctype html> <html> <head> <title> some title </title> </head> <body> <input type="text" value="sometext" id="textinput" oninput="textChanger()"> <script type="text/javascript" scr="main.js"></script> </body> </html>
我希望 textinput 的值應該在 3 秒后改變,但它沒有改變。
您應該更改輸入的value
屬性。
var textinput = document.getElementById('textinput'); function textChanger() { setTimeout(function() { textinput.value = 'newtext'; }, 3000); } textChanger();
<input type="text" value="sometext" id="textinput" oninput="textChanger()">
你可以在這里找到很多細節:
發生這種情況是因為您將文本從<input>
復制到變量。 與對象不同,原語(如字符串)是按值傳遞的。 這意味着當您更新變量時,您不會更新<input>
值。
此代碼有效:
var inputElement = document.getElementById('textinput'); function textChanger() { setTimeout(function() { inputElement.value = 'newtext'; }, 3000); }
<.DOCTYPE html> <!-- Don't forget the doctype! --> <html> <head> <title> some title </title> </head> <body> <input type="text" value="sometext" id="textinput" oninput="textChanger()"> <script type="text/javascript" scr="main.js"></script> </body> </html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.