使用jQuery 1.7.1,我注意到当我在Firebug的Inspect Element工具中查看时,文本输入字段的value
属性/属性不会更新,但会在屏幕上更新,即在实际的可见文本框。
例如,使用以下内容(使用内联)更改文本的值时:
jQuery(function() {
jQuery('#event').val("test");
});
文本框本身显示test
但Firebug的Inspect Element不代表更改:
<input type="text" value="" placeholder="" id="event" name="event" class="input-text">
我确信在使用较旧的jQuery之前我已经看过Firebug中的值变化,但是在这种情况下不是这样,也不是我的同事也使用jQuery 1.7.1。
这是jQuery这个特定版本的怪癖/错误还是我在某个地方错过了一步?
答案 0 :(得分:8)
value属性始终显示defaultValue
。 Firebug从未在属性中显示当前value
。
屏幕上始终显示当前value
。
这与Firebug或jQuery无关,它是HTML标准。
答案 1 :(得分:5)
属性值永远不会改变,只有属性。
var input = document.getElementsByTagName("input")[0];
setInterval(function(){
input.value = parseInt(input.value) + 1;
console.log(input.value, input.getAttribute("value"));
},1000);
答案 2 :(得分:0)
有时Firebug并不总能反映出一些变化,我之前已经注意到了这一点。
如果有刷新我还没找到。您可以关闭再打开Firebug,也可以只使用控制台检查值是否已更改
console.log($("#event").val());
答案 3 :(得分:0)
我也看到了这一点:即输入的value属性在Firebug中不会改变。上次我注意到这是不久前(比如2年)。顺便说一句,我也在使用jQuery,但我真的怀疑jQuery与此有什么关系。这就是Firebug的工作原理(或者至少是有效的)。
当然,您仍然可以使用Firebug控制台明确获取值:
console.log( $('input#event').val() )