javascript - 在搜索中考虑特殊字符

标签 javascript php jquery html forms

我有一个带有搜索建议的表单,当用户输入内容时会显示该搜索建议。现在,此搜索建议是可点击的,用户可以点击特定项目。当该项目单击时,会将它们带到类似 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>

最佳答案

首先,正如 GolezTrol 所评论的,我会在任何地方使用 UTF8:这是避免像您这样的问题的推荐最可靠的方法。

然后,在您遇到的特殊情况下,您可以尝试替换

  var decoded = $("<div/>").html($name).text();

  var decoded = encodeURIComponent($("<div/>").html($name).text());

(不确定它是否正常工作......)

关于javascript - 在搜索中考虑特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29461769/

相关文章:

javascript - Material UI - 展开面板不会缩小上面的 div

php - 什么时候发送 HTTP 状态码?

jquery - 如何在我的网站内使用 jquery 将推文发送到 twitter

php - http请求AJAX

javascript - 复制粘贴防止JS代码没有禁用输入(搜索字段)元素?

javascript - 如何在拼接层中重用微前端定义的 Web 组件?

javascript - Bootstrap 折叠点击后不折叠

javascript - 强制顺序执行 javascript 的替代方法

javascript - 数据表 : How to add custom server-side styling?

php - 如何在没有千位分隔符和舍入函数的情况下使用 number_format