2013-03-26 3 views
0

J'ai un code similaire à celui-ci http://jsfiddle.net/kianoshp/YWSSp/77/épine dorsale insensibles à la casse

Je pense qu'il doit y avoir des changements sur une partie

$('#filter').on('keyup', function(e) { 
     filteredCollection = new FilteredCollection(); 
     filteredCollection.reset(filterTable(administratorCollection, 
    $(e.currentTarget).val())); 
     resetTable(filteredCollection); 
}); 

Et je ne peux pas penser à réponse comment faire de la recherche insensible à la casse.

+3

en javascript, vous pouvez simplement faire var = isEqual str1.toUpperCase() === str2.toUpperCase(); – NimChimpsky

+1

en outre, vous pouvez ajouter '$ .trim()' de sorte que les espaces de fin ne touchent pas vos résultats –

Répondre

1

Pour que la recherche ne soit pas sensible à la casse, vous devez utiliser les termes de recherche et de recherche en majuscules ou en minuscules.

Dans votre code:

filterTable = function(collection, filterValue) { 
    if (filterValue === "") { 
     return collection.toJSON(); 
    } 
    filterValue = filterValue.toLowerCase(); 
//       ^^^^^^^^^^^^^ 
    return collection.filter(function(data) { 
     return _.some(_.values(data.toJSON()), function(value) { 
      value = (!isNaN(value) ? value.toString() : value.toLowerCase()); 
//               ^^^^^^^^^^^^^ 
      return value.indexOf(filterValue) >= 0; 
     }); 
    }); 
}; 
+0

Merci! Mais cela ne fonctionne que si toutes les lettres sont en minuscules ou en majuscules. Si elles sont différentes, cela ne fonctionnera pas vraiment. –

+0

C'est parce que vous les normaliser pour être tous les mêmes cas (plus bas)? – Bergi

+0

http://jsfiddle.net/cqPdD/3/ essayer de rechercher par exemple Fricis écrit dans la boîte de recherche "FRICIS", il ne trouvera pas Fricis. –

Questions connexes