Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在导航到其他页面后保持文本框值_Javascript_Jquery_Asp.net - Fatal编程技术网

Javascript 如何在导航到其他页面后保持文本框值

Javascript 如何在导航到其他页面后保持文本框值,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我有一个由四个文本框组成的页面(比如示例页面),我给了所有文本框的值,我在页面中有一个按钮用于导航,单击时,它将导航到下一页,在该页面中我有后退按钮,单击后退按钮时,它将返回示例页面,但我给的值被清除 除了IE 11浏览器之外,它在所有浏览器中都会变得清晰。有什么解决方案吗 我使用asp.net文本框,我使用jquery for从文本框中获取值 如何防止在导航到其他页面后清除文本框 Session["someKey"] = yourTextBoxID.Text; 提前感谢。您可以使用local

我有一个由四个文本框组成的页面(比如示例页面),我给了所有文本框的值,我在页面中有一个按钮用于导航,单击时,它将导航到下一页,在该页面中我有后退按钮,单击后退按钮时,它将返回示例页面,但我给的值被清除

除了IE 11浏览器之外,它在所有浏览器中都会变得清晰。有什么解决方案吗

我使用asp.net文本框,我使用jquery for从文本框中获取值

如何防止在导航到其他页面后清除文本框

Session["someKey"] = yourTextBoxID.Text;

提前感谢。

您可以使用
localStorage

$(函数(){
var targetValue=localStorage.getItem('targetEval');
如果(targetValue){//如果有任何值,则设置它。
$('#targetEl').val(targetValue);
}
$('#targetEl').keydown(函数(e){
var val=该值;
如果(e.which==13){
setItem('targetElVal',val);//设置值
}
});
});

要保持文本框值不变,您可能需要研究.NET Framework中可用的状态管理技术

您可以尝试使用会话、查询字符串甚至cookie。你想用什么,这是你的选择

检查此链接:

您需要首先将文本框值分配给会话,然后从会话中检索这些值并将其分配回文本框

如果您在这里谈论浏览器后退按钮,事情可能会变得棘手,因为无法从服务器端控制其行为。但是,如果您试图在回发之间移动,那么使用会话或cookie肯定会有所帮助

下面是一个使用会话的示例。在文本框所在的页面上,您可以编写此命令以在会话中存储文本框值。这是在您导航到其他页面之前编写的

Session["someKey"] = yourTextBoxID.Text;
现在,当您按下“后退”按钮并发生回发时,您可以将存储在会话中的值指定给它,如下所示:

yourTextBoxID.Text = Session["someKey"].ToString();
这是在
之外编写的!IsPostBack
并执行空检查


希望这有帮助。

一个解决方案是使用唯一的ID,例如:用户ID作为键,值将是文本框的JSON值

然后在window.beforeunload事件中,所有文本框值都可以存储在该键下

例如:localStorage.setItem('unique_user_id_values',JSON.stringify([{input1:'foo'},{input2:'bar'}])

可以使用JSON解析方法检索这些值。
JSON.parse(localStorage['unique\u user\u id\u values-values'])

您需要将数据保留在会话中。可能是IE 11缓存了整个页面,这就是它未被清除的原因。您可以使用会话或cookie来保留文本字段的状态。这是唯一的解决方案。如果我有20个文本框,每个文本框如何维护cookie。是否有其他解决方案。类似于这样:您也可以使用url,通过uri编码文本,然后将其添加到url参数,并在新页面上读取url参数,取决于你需要什么ofc。绝对地但是,如果您不想在url中显示,那么在客户端应该使用
存储
,这不太可能像使用“上一步”按钮时一样,缓存的版本会返回。这里需要回发以使其以这种方式工作。如果按下浏览器后退按钮之类的按钮,我们可能会看到发生了一些不同的事情,或者根本没有发生任何事情。它可能会在当时获取缓存数据。问题中明确指出,使用后退按钮时会出现问题。