没有自动过滤器的jquery移动搜索

时间:2015-05-09 05:28:19

标签: javascript jquery jquery-ui jquery-mobile jquery-mobile-listview

我的jquery移动网站中有一个搜索过滤器。默认情况下,当我输入搜索关键字时,搜索过滤器会自动过滤列表。但我需要它按Enter键后过滤列表。

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="http://code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>

<div data-role="page" id="pageone">
  <div data-role="main" class="ui-content">
    <h2>My Phonebook</h2>
    <form class="ui-filterable">
      <input id="myFilter" data-type="search">
    </form>
    <ul data-role="listview" data-filter="true" data-input="#myFilter" data-autodividers="true" data-inset="true">
      <li><a href="#">Adele</a></li>
      <li><a href="#">Agnes</a></li>
      <li><a href="#">Albert</a></li>
      <li><a href="#">Billy</a></li>
      <li><a href="#">Bob</a></li>
      <li><a href="#">Calvin</a></li>
      <li><a href="#">Cameron</a></li>
      <li><a href="#">Chloe</a></li>
      <li><a href="#">Christina</a></li>
      <li><a href="#">Diana</a></li>
      <li><a href="#">Gabriel</a></li>
      <li><a href="#">Glen</a></li>
      <li><a href="#">Ralph</a></li>
      <li><a href="#">Valarie</a></li>
    </ul>
  </div>
</div> 

</body>
</html>

`

1 个答案:

答案 0 :(得分:1)

您可以通过让自定义代码响应struct data *FindKey(const char *key, const struct HashTable *htable) { int hashVal, stepSize, startVal; hashVal = HashFunc1(key, htable->size); if (htable->table[hashVal].username == NULL) return NULL; if (strcmp(htable->table[hashval].username, key) == 0) { return &htable->table[hashVal]; } startVal = hashVal; stepSize = HashFunc2(key, (*htable)->size - 1) + 1; for(;;) { hashVal = (hashVal + stepSize) % htable->size; if (hashVal == startVal) return NULL; if (htable->table[hashVal].username == NULL) return NULL; if (strcmp(htable->table[hashval].username, key) == 0) { return &htable->table[hashVal]; } } return NULL; } 事件并在那里使用preventDefault来禁用过滤。知道是否取消过滤的一种方法可能是总是阻止,除非只是按下回车键。

filterablebeforefilter

JSFiddle here