我有以下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 = encodeURIComponent($("<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();
}
});
$('#searchid').click(function() {
jQuery("#result").fadeIn();
});
});
在当前状态下,它不接受特殊字符。从某种意义上说,它是一个搜索建议,当用户点击某个项目时,它会将它们带到搜索结果中。这项工作对常规字符进行罚款,但只要撇号,斜线或任何特殊字符等特殊字符被抛入其中就不再有用了。
这是解码完成的区域:
var $clicked = $(e.target);
var $name = $clicked.find('.name').html();
var decoded = encodeURIComponent($("<div/>").html($name).text());