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标准。
属性值永远不会更改,只会更改属性。
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() )