我正在尝试向我的页面添加一个搜索框,用于将用户定向到其他网站上的搜索结果页面。我在隐藏字段中有操作和所有其他所需数据,以确保它正确发布。
问题在于他们将额外数据添加到搜索词中,使其成为高级搜索类型的字段。所以不是searchTerm = X,而是期望searchTerm = Locale(en):FQE =(KE,None,11)MY_SEARCH_TERM:And:LQE =(AC,None,8)fulltext $
如何在搜索字词周围添加额外数据,而不必点击中间页面进行连接?
这是我到目前为止所拥有的:
<form action="http://vendors.address/searchresult.do" method="post">
<input type="hidden" name="type" value="search">
<input type="hidden" name="sort" value="DateDescend">
<input type="text" name="queryId">
</form>
我需要能够产生这类事物的东西:
<form action="http://vendors.address/searchresult.do" method="post">
<input type="hidden" name="type" value="search">
<input type="hidden" name="sort" value="DateDescend">
<input type="hidden" name="queryId" value="Locale%28en%2C%2C%29%3AFQE%3D%28KE%2CNone%2C11%29MY_SEARCH_TERM_HERE%3AAnd%3ALQE%3D%28AC%2CNone%2C8%29fulltext%24">
</form>
任何帮助都将不胜感激。
答案 0 :(得分:1)
您可以使用Javascript通过隐藏的搜索字段执行此操作。在jQuery中,它将类似于:
$("input[name='queryId']").keyup(function() {
$("#hiddenField").val("Locale%28en%2C%2C%29%3AFQE%3D%28KE%2CNone%2C11%29" + $(this).val() + "%3AAnd%3ALQE%3D%28AC%2CNone%2C8%29fulltext%24");
});
但是没有JS会打破它。
编辑:是的,打败它,没有刷新答案。
答案 1 :(得分:1)
您可以在提交表单之前使用JavaScript进行连接。有几种方法可以做到这一点,但这是推荐的方法:
由于我没有看到提交按钮,我假设您计算用户按Enter键提交表单,因此您需要收听onSubmit事件并在发送帖子之前连接额外信息服务器
为表单元素指定一个id:
<form action="..." method="post" id="searchForm">
并为文本输入字段指定一个id:
<input type="text" name="queryId" id="queryId">
在表单
之后添加此脚本块<script> document.getElementById("searchForm").onSubmit = function(){ var queryField = document.getElementById("queryId"); queryField.value = "prepend_data" + queryField.value + "append_data"; return true; } </script>
或者你可以使用JQuery(请做)你可以放在任何地方:
<script> $(function(){ $("#searchForm") .submit( function(){ $("#queryId).val("prepend_data" + $(this).val() + "append_data"); } ); }); </script>
希望有所帮助
答案 2 :(得分:0)
我能想到的两件事:
1.只需将区域设置和内容放入隐藏的输入中:
<input type="hidden" name="locale" value="en" />
2。使用javascript提交表单(这是一个可怕的想法 - 如果Javascript被关闭,你不想让你的网站中断。)