jQuery 1.7.1 – 文本输入的’值’未在Firebug Inspect元素中更新,但在屏幕上

使用jQuery 1.7.1,我注意到当我在Firebug的Inspect Element工具中查看时,文本输入字段的value属性/属性不会更新,但会在屏幕上更新,即在实际的可见文本框中更新。

例如,使用以下内容更改文本的值(使用内联):

 jQuery(function() { jQuery('#event').val("test"); }); 

文本框本身显示test但Firebug的Inspect Element不代表更改:

  

我确定在使用旧的jQuery之前我已经看到了Firebug中的值变化,但是在这种情况下并没有,我的同事也没有使用jQuery 1.7.1。

这是这个特定版本的jQuery的怪癖/错误还是我错过了某个地方的一步?

value属性始终显示defaultValue 。 Firebug从未在属性中显示当前value 。 当前value始终在屏幕上可见。

这与Firebug或jQuery无关,它是HTML标准。

属性值永远不会更改,只会更改属性。

http://jsfiddle.net/cc5Pm/1/

 var input = document.getElementsByTagName("input")[0]; setInterval(function(){ input.value = parseInt(input.value) + 1; console.log(input.value, input.getAttribute("value")); },1000); 

有时Firebug并不总能反映出一些变化,我之前已经注意到了这一点。

如果有刷新我还没找到。 您可以关闭再打开Firebug,也可以只使用控制台检查值是否已更改

 console.log($("#event").val()); 

我也看到了这一点:即输入的value属性在Firebug中不会改变。 上次我注意到这是不久前(比如2年)。 顺便说一下,我也在使用jQuery,但我真的怀疑jQuery与此有什么关系。 这就是Firebug的工作方式(或者至少是有效的)。

当然,您仍然可以使用Firebug控制台明确获取值:

 console.log( $('input#event').val() )