我有2个页面,一个名为details.page,另一个名称为maps.page
在第一页中,我声明了一个搜索输入,如下所示:
<form method="get" id="form-search" data-ajax="true" action="maps.page">
<input type="search" name="search" id="search" value=""/>
</form>
在我的第二页maps.page中,我有一个声明如下:
<form action="maps.page">
<input type="search" name="search" id="search-field" value=""/>
</form>
现在,我假设当我在第一页的搜索栏中键入内容并按Enter键时,maps.page上的搜索栏将填充先前输入的值。
我被正确重定向,但搜索栏为空。
我做错了什么?
提前感谢您的帮助。
编辑:另外,我在网址中看到它似乎正常工作,因为我可以看到我在网址中搜索到的内容如下:/maps.page?search = something
答案 0 :(得分:1)
该值不会自动填充。您需要从服务器端打印它。
<form action="maps.page">
<input type="search" name="search" id="search-field" value="<insert value>"/>
</form>
答案 1 :(得分:1)
我假设当我在第一页的搜索栏中键入内容并按Enter键时,maps.page上的搜索栏将填充先前输入的值。
这就是你做错了。
只有设置了value属性(或在将元素添加到DOM后设置DOM值属性),才会填充该字段。
这通常使用服务器端进程完成。具体细节取决于您用于创建该过程的语言,但请注意XSS,因为包含未经过滤的非转义用户输入会产生安全漏洞。
答案 2 :(得分:1)
如果不使用后端脚本,您可以选择如何执行此操作。
1)您可以将表单方法设置为GET,以便变量在地址栏中传递,然后使用类似下面的脚本在另一侧获取它们(这实际上是读取地址然后为变量解析它) )。之后,您可以将该值放在输入字段中。
var getVars = new Array();
var locvartemp = ( window.location.href.indexOf( "?" ) + 1 ) ? window.location.href.substr( window.location.href.indexOf( "?" ) + 1 ) : "";
locvartemp = locvartemp.split( "&" );
for( var x = 0; x < locvartemp.length; x++ ) {
var lvTempVar = locvartemp[x].split( "=" );
getVars[ unescape( lvTempVar[0] ) ] = unescape( lvTempVar[1] );
}
2)您可以使用jQuery cookie插件在提交表单之前将值设置为cookie,然后在另一侧读取并将其设置为输入字段。
jQuery.cookie("myCookie", document.formName.myFieldName.value);
如果您需要更多详细信息,请与我们联系。