Dom*_*Dom 3 jquery jquery-autocomplete
这是我完整的 jquery js 脚本。下拉菜单工作正常。但是当我选择一行时,我想填写 2 个字段:值和 id。但它不起作用。
\n\n$(\'#rechercher_personne\').autocomplete({\n source : function(requete, reponse){ // les deux arguments repr\xc3\xa9sentent les donn\xc3\xa9es n\xc3\xa9cessaires au plugin\n $.ajax({\n url : $(\'#url_for_ajax\').val() + \'/getListePersonneAjax\',\n dataType : \'json\', // on sp\xc3\xa9cifie bien que le type de donn\xc3\xa9es est en JSON\n data : {nom : $(\'#rechercher_personne\').val(), maxRows : 15},\n\n success : function(donnee){\n console.log(donnee);\n reponse($.map(donnee, function(objet){\n return objet.id + \', \' + objet.value; \n }));\n }\n });\n },\n minLength: 3,\n\n select: function( event, ui ) {\n\n $( "#id_personne" ).val( ui.item.id ); // <== KO\n $(\' #rechercher_personne\' ).val( ui.item.value ); // <== OK\n return false;\n } ,\n\n messages: {\n noResults: \'\',\n results: function() {}\n }\n}); \nRun Code Online (Sandbox Code Playgroud)\n\n包含该值的字段正常。\n必须包含 id 的字段是 KO。它总是空的。
\n\n我是这个插件的初学者,我肯定错过了一些东西,但我没有找到什么。感谢您的帮助。
\n\n多米尼克
\n\n编辑 :
\n\n$(\'#rechercher_personne\').autocomplete({\n source : function(requete, reponse){ // les deux arguments repr\xc3\xa9sentent les donn\xc3\xa9es n\xc3\xa9cessaires au plugin\n $.ajax({\n url : $(\'#url_for_ajax\').val() + \'/getListePersonneAjax\',\n dataType : \'json\', // on sp\xc3\xa9cifie bien que le type de donn\xc3\xa9es est en JSON\n data : {nom : $(\'#rechercher_personne\').val(), maxRows : 15},\n\n success : function(donnee){\n console.log(donnee);\n reponse($.map(donnee, function(objet){\n // return objet.value + \', \' + objet.label; \n return objet.label;\n }));\n }\n });\n },\n minLength: 3,\n\n select: function( event, ui ) {\n console.log(ui.item);\n $( "#id_personne" ).val( ui.item.value ); // <== KO\n $(\' #rechercher_personne\' ).val( ui.item.label ); // <== OK\n return false;\n } ,\n\n messages: {\n noResults: \'\',\n results: function() {}\n }\n}); \nRun Code Online (Sandbox Code Playgroud)\n\n“ui.item.value”和“ui.item.label”包含标签。如何为“ui.item.value”赋予良好的价值?
\n这是解决方案:
\n\nhtml部分:
\n\n<input id="rechercher_personne" class="form-control typeahead" type="text" name="personne" placeholder="Rechercher personne ..." pattern=".{2,}" title="2 caract\xc3\xa8res minimum" >\n<input type="hidden" id="id_personne" class="form-control"/>\nRun Code Online (Sandbox Code Playgroud)\n\nJavaScript 部分:
\n\n$(\'#rechercher_personne\').autocomplete({\n source : function(requete, reponse){\n\n $.ajax({\n url : $(\'#url_for_ajax\').val() + \'/getListePersonneAjax\',\n dataType : \'json\', \n data : {nom : $(\'#rechercher_personne\').val(), maxRows : 15},\n success : function(donnee){\n\n reponse($.map(donnee, function(objet){\n return {\n label: objet.nom_personne,\n value: objet.id_personne\n };\n }));\n }\n });\n },\n\n minLength: 3,\n delay:500,\n\n select: function( event, ui ) {\n $(\' #rechercher_personne \' ).val( ui.item.label ); \n $(\' #id_personne \').val( ui.item.value ); \n return false;\n } ,\n\n messages: {\n noResults: \'\',\n results: function() {}\n }\n\n\n}); \nRun Code Online (Sandbox Code Playgroud)\n\njson 看起来像:
\n\n{"id_personne":4,"nom_personne":"nom2 prenom2"},{"id_personne":5,"nom_personne":"nom3 prenom3"},{"id_personne":6,"nom_personne":"nom4 prenom4"}\nRun Code Online (Sandbox Code Playgroud)\n\n我遇到的问题是映射不太好。非常重要:自动完成需要label并value正常工作。
| 归档时间: |
|
| 查看次数: |
4192 次 |
| 最近记录: |