我在表单上有一个字段,它使用jQuery插件来创建自动完成下拉列表。我通过以下AJAX代码调用它:
$(function() {
$("#fieldName").autocomplete({
source: "projects.php",
minLength: 3,
select: function(event, ui) {
$('#fieldName').val(ui.item.value);
}
});
当用户提交表单时,操作(update.php)会将他带到审阅页面。如果他需要进行更改,只需单击浏览器上的BACK按钮即可返回表单。问题是" fieldName"当用户单击时,该字段为空白,就好像该函数正在重新初始化该字段一样。我已尝试在update.php中设置会话变量和cookie以捕获用户提供的字段值,我可以通过在评论页面上回显它们来确认它们已被设置,但是当我尝试回应表单上的值,没有任何反应。有没有办法维持" fieldName"的状态?当用户点击BACK?
时到目前为止,我已尝试过以下内容:
setcookie("cookieName", $_POST['fieldName']); //Set in update.php
<input type="text" name="fieldName" id="fieldName" value="<?php echo $_COOKIE['cookieName']; ?>" />
<!--Set on form -->
会话变量尝试:
$_SESSION['fieldValue'] = $_POST['fieldName']; //Set in update.php
<input type="text" name="fieldName" id="fieldName" value="<?php echo $_SESSION['fieldValue']; ?>" />
<!--Set on form -->
答案 0 :(得分:0)
尝试削减value
输入的text
属性。没有理由明确将其设置为执行您尝试执行的操作。浏览器应将输入的值保留在文本字段中,除非它们由输入或DOM更改。由于没有事件或方法会清除该字段,因此即使在页面转换之间也应保留其值,除非源页面上的某些事件或方法实际上为其设置了默认值。
此外,如果您使用旧版本的JQuery,可以查看下面的文章。几年前出现了一个问题,即在某些条件下,启用自动填充功能的字段在通过浏览器的后退按钮进行修改时不会按预期保留其值。参见: