【问题标题】:Cached hidden input value is being used in IE9 instead of updated value在 IE9 中使用缓存的隐藏输入值而不是更新值
【发布时间】:2011-08-07 10:27:15
【问题描述】:

IE9 使用隐藏输入元素的初始值而不是动态更新的值时遇到问题。

我创建了以下内容,以便您可以实时查看我的问题:http://jsfiddle.net/NN8gM/

  • 页面加载,隐藏的输入值显示出来。当。。。的时候 值是动态更新的(通过单击 例如),初始值(6.00)仍然在IE中显示 而不是新值 (7.00)!

更新的值在我尝试过的其他浏览器中正确显示。在 Firefox 中运行示例以查看所需的效果。

为什么?

【问题讨论】:

    标签: javascript jquery internet-explorer hidden-field


    【解决方案1】:

    我刚刚在 ie9 中检查了你的代码,我想告诉你一件事,它选择缓存值是不正确的,

    实际上这段代码不起作用$(this).next().attr('value', '7.00');

    我用$('input[type=hidden]').attr('value', '7.00'); 替换了你的那部分代码 效果很好,下面是一个演示。

    我仍在弄清楚为什么您编写的代码在 mozilla 中无法在 ie9 中运行。 (其实ie9很难调试,几乎打不开)

    http://jsfiddle.net/NN8gM/9/

    【讨论】:

    • 嗯.. 很奇怪。与@Kwpolska 一样,这两种解决方案都有效。我想弄清楚为什么$(this).next().attr('value', '7.00'); 在其他浏览器中有效但在 ie 中无效更重要。 .next() 之所以重要,是因为有很多输入的 id 为“si”。我只需要动态更新其中的 一个(即触发按钮的 next)。
    【解决方案2】:

    我建议按照正常方式进行操作并使用:

    $('#si').attr('value', '7.00');
    

    【讨论】:

    • 这确实有效(好吧,没有.next()),问题是我无法使用$('#si'),因为那会假设它是独一无二的。所以问题在于使用:$(this).next() 为什么这在 Firefox 等中有效,但在 IE9 中无效
    • 这是 Internet Explorer,你期待什么?
    • 哈哈.. 是的。我是这个游戏的新手,我已经在努力学习了。
    猜你喜欢
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    • 2019-12-01
    • 2019-04-06
    相关资源
    最近更新 更多