我有一個搜索建議的形式,顯示爲用戶鍵入輸入。現在這個搜索建議是可點擊的,用戶可以點擊一個特定的項目。當它點擊它時,將它們帶到類似於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