Jquery在刷新时返回元素的旧值

时间:2016-05-10 04:02:02

标签: javascript jquery html

有一个html如下:

$(document).ready(function(){
     var currency_factor = $('#currency_factor').val()
     alert(currency_factor);
 }

还有一个jquery函数:

<input id="currency_factor" type="text" style="display:none;" value="0"/>

刷新后,html行在浏览器中显示为:

<input type="hidden" name="years" value="<?php 
if ($years == 1) {
    echo '10';
}
else if ($years == 5) {
    echo '50';
}
?>" />
<input type="hidden" name="years-orig" value="<?php echo $years; ?>">

但是jquery返回20。

为什么会这样?

3 个答案:

答案 0 :(得分:1)

尝试将此添加到html文件的标头中以禁用缓存:

<meta http-equiv="Cache-Control" content="no-store" />

实际上有许多缓存控制标记可能需要也可能不需要,具体取决于所使用的浏览器。这是StackOverflow上的另一个帖子,其中列出了其中一些:Using <meta> tags to turn off caching in all browsers?

答案 1 :(得分:0)

首先尝试初始化然后设置

$(document).ready(function(){
     var currency_factor = 0;
     currency_factor = $('#currency_factor').val()
     alert(currency_factor);
 }

答案 2 :(得分:0)

您是否拥有多个id currency_factor的元素?可能会返回第一个值。

另一种可能性是在$(document).ready()函数执行后更改了值。加载后尝试在浏览器控制台中运行$('#currency_factor').val()。如果它返回0,则在页面加载后更改