我有一个简单的网络应用程序,其中有一个输入文本字段,如下所示:
<input id="txtip" type="text" value="10.1.1.50" />
地址 10.1.1.50
是 ip 地址的默认值。从 javascript 我会这样读它:
txtip.getAttribute("value")
现在我们假设将其更改为 10.1.1.49
。在 google chrome 中,上面的 javascript 代码仍然会返回 10.1.1.50
,而表达式
txtip.value
返回 10.1.1.49
。
有什么区别?什么是“正确的方式”?
var el = document.getElementById('testBox');
$(document).focusout(function () {
alert('el.value = ' + el.value);
alert('el.getAttribute("value") = ' + el.getAttribute('value'));
e.preventDefault();
});
<h2>Change value in the text box</h2>
<input id="testBox" type="text" value="original value" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
在网上找到这个可能会帮助你尝试按照代码输入一些东西然后聚焦
不同之处在于 element.value 是实时的,如果用户更改,比方说文本框输入,它会反射(reflect)出来,并向您显示新值。
虽然 getAttribute('value') 仍将显示原始 value="whateverWasHere"值。