我有一个使用内联编辑和ajax来修改字段的表。该表按姓氏排序。
如果我更改姓氏以便更改行顺序然后执行页面刷新,则表格会重新排序,但我更改的字段仍然具有dom中的先前值。输入字段在html中具有正确的值,但显示了dom值。
硬刷新当然会显示所有正确的值。
为什么我的DOM不同步?如何刷新以显示正确的值?
回复后编辑
Firefox保留了输入字段的先前值。在网上浏览后,我发现添加<form autocomplete="off">
会强制Firefox 不缓存旧值。
答案 0 :(得分:2)
几乎可以肯定,您的浏览器会通过刷新保留表单值。您是否可以对其进行排列,以便在刷新时,再次触发用于从输入字段更新DOM的触发器?
在不知道DOM和输入字段如何在代码中进行交互的情况下,很难提供更多细节。
答案 1 :(得分:2)
我认为浏览器正在缓存表单字段的先前值(很糟糕)。真正令人沮丧的是,如果我更改多个项目,几乎不可能弄清楚value属性是否正确或字段中的文本是否正确(因为它可以采用任何一种方式)。
我很惊讶您使用的是ajax,但没有自动排序/自动刷新按钮。
从短期来看,您应该使用可排序表来避免用户在页面上感到困惑。
从长远来看,你应该采用我正在努力解决的一个非常类似的问题......
存储数据(ajax到服务器,服务器将其存储在DB中),让表始终在数据库中设置服务器端的值字段,并在页面加载时,有一个循环遍历所有的js脚本输入元素的值,并从value属性手动设置字段的值,如:
$("table :input").each(
$(this).value($(this.attr("value")));
);