基本上,我有一个表格中有一些相当日期敏感的信息。缓存表单的风险是:
1)用户可能没有注意到日期错误,只是认为服务器已经加载了他们保存的数据(如果日期正确的话,应该加载它)。然后他们提交数据并将其保存到错误的日期。他们直到下周才会注意到,或者因为在正确的一周内没有提交任何表格而大吼大叫。
2)用户注意到但认为错误是服务器端。他们从浏览器重新加载表单,而不是提交日期更改表单以获得正确的日期,所有的古怪随之而来......
所以,我在想,因为所有在服务器端处理缓存的尝试似乎都对情况影响很小,这或许有一种更聪明的方式......
这两个想法都基于这样的假设:如果输入表单为空(没有值),浏览器仅使用缓存数据。所以第一个问题,这是真的吗?
如果是的话,我想知道哪些想法会更有效:
1)服务器脚本只是将所有输入设置为0.然后我们有一个js脚本,在页面加载时将所有输入设置为0到“”。 (0永远不会是一个可能的条目,如果引发任何铃声)。
2)单独保留服务器脚本,只需让上面提到的javascript遍历每个输入,并将输入的value()
更改为输入的attr("value")
。因此,如果它不存在,则将其设置为空白。
我对浏览器缓存的理解有哪些缺陷?这两种方法都能更好地运作吗?
第二个想法的样本:
$("input :text").val(function() {
realval = (!($this).attr("value")) ? 0 : $(this).attr("value");
return realval;
});
答案 0 :(得分:0)
通过使用会话ID扩展输入字段,使用不同的ID和名称。
e.g。会话ID 12345
<input type="text" id="12345_firstname" name="12345_firstname" />
浏览器不会触及这些字段。
另一种方法可能是将所有输入字段设置为禁用,并在文档加载后将其设置为使用jQuery启用。
<INPUT NAME="firstname" DISABLED>
$("input").removeAttr("disabled");