gpt4 book ai didi

jquery - 按下后退按钮时 Sammy.js 表单被清除

转载 作者:行者123 更新时间:2023-12-01 04:28:26 28 4
gpt4 key购买 nike

我刚开始使用 sammy.js。我想发布一个表单并通过ajax获取结果。我使用 sammy.js 是因为当用户单击结果时,他们将被重定向到新页面,并且当他们想要再次返回表单页面时,如果我不使用 sammy 之类的内容,表单将被清除。 js。

问题是它不起作用。如果我按“后退按钮”返回,表单无论如何都会被清除。

这是我的代码:

var app = $.sammy(function()
{
this.get("#/", function()
{
});

this.post("#/filter", function()
{
fields = this.params;
this.app.swap();
$("#get_result").html(fields);
});
});

$(function()
{
app.run("#/");
});

这是我的表格:

<form action="#/filter" method="post" id="searchForm">
<input type="text" name="test"/>
<input type="submit" name="submit"/>
</form>

最佳答案

您的发布路由#/filter实际上不会导致浏览器地址栏中的哈希更改,而是对#/filter路由执行静默提交。因此,当您点击后退按钮时,它会返回到启动 #/ 路线之前的上一条路线,无论该路线是什么。将它们重定向回发布路由也是没有意义的,因为我们不希望用户重复发布表单。

您可以做的是保留一个内存变量,并在每次返回主路线时引用它。例如:

var app = $.sammy(function()
{
var lastSearch = '';
this.get("#/", function()
{
$('#searchForm input:first').val(lastSearch);
});

this.post("#/filter", function()
{
lastSearch = $('#searchForm input:first').val();
fields = this.params;
this.app.swap();
$("#get_result").html(fields);
});
});

$(function()
{
app.run("#/");
});

关于jquery - 按下后退按钮时 Sammy.js 表单被清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4583396/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com