Vous trouverez ci-dessous un exemple d'un filtre de sélection rempli de données utilisateur. Mon but est d'effectuer une correspondance wilcard sur les valeurs affichées. Par exemple, si l'utilisateur tape 'fils', les résultats de la liste déroulante seront "homer simpSON" et "carl calSON" Par défaut, la correspondance ne sera que sur le début de l'étiquettecomment dojo.FilteringSelect peut-il être configuré pour correspondre aux valeurs génériques?
J'ai essayé de changer dijit .byId (« userselect »). searchAttr, mais la mise à quoi que ce soit, mais une chaîne provoque le comportement erronious.
<input id="userselect">
<script type="text/javascript">
dojo.require("dijit.form.FilteringSelect");
dojo.require("dojo.data.ItemFileReadStore");
var user_data = {
"itentifier":"user_id",
"label":"label",
"items":[
{"first_name":"Waylon","last_name":"Smithers","label":"Waylon Smithers","user_id":7}
,{"first_name":"Carl","last_name":"Carlson","label":"Carl Carlson","user_id":6}
,{"first_name":"Homer","last_name":"Simpson","label":"Homer Simpson","user_id":4}
,{"first_name":"Lenny","last_name":"Leonard","label":"Lenny Leonard","user_id":5}
,{"first_name":"Montgomery","last_name":"Burns","label":"Montgomery Burns","user_id":8}
]
};
dojo.addOnLoad(function() {
var userStore = new dojo.data.ItemFileReadStore({
//url: "/user/lookup",
data: user_data
});
var filteringSelect = new dijit.form.FilteringSelect({
id: "userselect",
name: "userselect",
store: userStore,
searchAttr: 'label' //["first_name", "last_name", "oasis"]
},
"userselect");
});
</script>
queryExpr fonctionne, mais maintenant le comportement correspondant est erroné: Supposons que je commence à taper 'simpson', le le premier caractère 'correspond maintenant à' Waylon Smithers 'Le champ combo se remplit avec' Waylon Smithers ', mais la mise en surbrillance est fausse, car je continue à taper' imson 'il fusionne dans le texte sélectionné en tant que "wimpson" et ensuite Est-ce un bug dans le dojo? – AntiEgo
Pour autant que je comprends vous devez le définir sur * $ {0}. L'avez-vous fait? – kalkin