2013-03-13 111 views
2

我对jQuery自动完成存在疑问。当我在“LI”字段中写入内容时,我需要自动完成返回以“LI”开头的所有单词(小写和大写的单词)。但是当我写这个时,自动完成只会返回大写的单词。有没有可能改变这一点?使用自动完成功能禁用大小写敏感

更新:我找到了一种方法,我不知道这是否正确,但是...我正在使用它。它只是放入自动完成“ILIKE”的“SELECT”,而不是“LIKE”。它适用于我,但(再次)我不知道这是否是正确的做法!

+0

你有一个本地或远程数据源? – 2013-03-13 15:17:33

+0

远程数据源 – mailazs 2013-03-13 15:25:15

+0

@mzs_newbie:我个人在'WHERE'或'ORDER BY'里面使用[COLLATE](http://msdn.microsoft.com/en-us/library/ms184391.aspx)来强制区分大小写的列/表被解释为不区分大小写。 – Oleg 2013-03-14 12:25:11

回答

0

取决于你如何建立你的名单为您自动完成,这可以被自动建立,例如情况下不与实体框架去反对一个MySQL数据库我的C#代码没关系我。

//Builds a search list for Card Name Search boxes 
public JsonResult GetACResults(string term) 
{ 
    return Json((from item in db.tableName 
     where item.NameOfInterest.Contains(term) 
     select new 
     { 
      value = item.NameOfInterest 
     }).Distinct().OrderBy(x => x.value).ToList(), 
     JsonRequestBehavior.AllowGet); 
} //public JsonResult GetACResults(string term) 

如果这是somthign你必须自己处理,你可以看看这个帖子作为一种解决方案: Case insensitive 'Contains(string)'

+0

Hummm ok。这是我使用PHP,我不知道如何在PHP中。但是,感谢那@Mark :) – mailazs 2013-03-13 17:01:35

+0

这个概念应该是一样的,基本上'Contains'是C#相当于MySQL中的'LIKE'。我怀疑你会发现搜索数据库结果的例子,这些数据结果在PHP中使用'LIKE'。请标记正确,如果这解决了您的问题。 – Mark 2013-03-13 17:07:06

+0

Hummmmm ok。再次感谢 :) – mailazs 2013-03-13 17:10:57

-1

我找到了一种方法,我不知道这是否正确,但是...我正在使用它。 它只是把自动完成“ILIKE”,而不是“喜欢”“选择”。它适用于我,但(再次)我不知道这是否是正确的做法!

:)

+0

你使用什么作为自动完成的来源?我错过了什么,但jqGrid不会自动完成,但你正在调用jQuery自动完成? – Mark 2013-03-13 14:40:15

+0

对不起@Mark ...也许我只是对此感到困惑...我想是jQuery自动完成...我会改变问题的标题。谢谢你的评论! – mailazs 2013-03-13 15:00:09

1

什么简单的解决方法? 我的解决方案是使用PHP + MySQL,但您可以简单地将其应用到您想要的所有场景。

$upperString = strtoupper($stringToCompare); 
$query .= "SELECT blablabla WHERE UPPER(columnName) LIKE '%$upperString%'"; 

就像一个魅力

Linuxatico