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

时间:2012-05-31 14:44:41

标签: javascript jquery firebug

使用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这个特定版本的怪癖/错误还是我在某个地方错过了一步?

4 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:5)

属性值永远不会改变,只有属性。

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);

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

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

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

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