我有一个搜索建议的形式,显示为用户键入输入。现在这个搜索建议是可点击的,用户可以点击一个特定的项目。当它点击它时,将它们带到类似于searchPage.php的地方?user_query =被点击的项目的文本(即searchPage.php?user_query = html)。考虑到在搜索中的特殊字符
我注意到的是,如果在搜索建议项目有被称为ASCII ISO特殊字符8859-1会忽略它,因此结果将是searchPage.php?USER_QUERY =
在任何情况下它可以是空白的,因为如果你点击一个项目然后它填充整个列表,它的设计就会很糟糕。
下面是搜索建议JS:
$(function(){
$(".search").keyup(function()
{
var searchid = $(this).val();
var dataString = 'search='+ searchid;
if(searchid!='')
{
$.ajax({
type: "POST",
url: "search.php",
data: dataString,
cache: false,
success: function(html)
{
$("#result").html(html).show();
}
});
}return false;
});
jQuery("#result").live("click",function(e){
var $clicked = $(e.target);
var $name = $clicked.find('.name').html();
var decoded = $("<div/>").html($name).text();
window.open('searchPage.php?user_query=' + decoded,'_self',false);
$('#searchid').val(decoded);
});
jQuery(document).live("click", function(e) {
var $clicked = $(e.target);
if (! $clicked.hasClass("search")){
var $name = $clicked.find('.name').html();
var decoded = $("<div/>").html($name).text();
}
});
$('#searchid').click(function(){
jQuery("#result").fadeIn();
});
});
下面的形式:
<form method="get" action="searchPage.php" enctype="multipart/form-data" autocomplete="off">
<input type="text" class="search" id="searchid" name="user_query" id="searchBar" placeholder="Search for courses" />
<input type="submit" id="searchButton" name="search" value="search" class="btn btn-danger" autocomplete="off"/>
<div id="result"></div>
</form>
“ASCII更换
ISO 8859-1“是西方大部分地区使用的标准拉丁字符集。你能提供一个JSFiddle吗?见http://en.m.wikipedia.org/wiki/ISO/IEC_8859-1 – dartonw 2015-04-05 20:35:50
你的问题是什么;为什么字段是空白的?如何禁止空查询? – chris85 2015-04-05 20:56:09
这可能是您的文档,表单或此过程的另一部分不使用ISO 8859-1,而是另一种编码。为了使它工作,你必须在任何地方都有相同的编码。即使这样,我也会在任何地方使用UTF-8,因为它支持最广泛的字符而不需要转义它们。 – GolezTrol 2015-04-05 21:04:53