Jquery UI 自动完成 & Ajax 倍数 returns 成功
Jquery UI Autocomplete & Ajax multiples returns from success
我目前正在创建一个网站,我必须使用 API 来恢复法国的所有高等教育学校,这样当用户注册时,他输入他的大学并提供选择他感谢 Jquery ui 自动完成。
这就是它给出的:
$('#recherche').autocomplete({
open: function () { $('.ui-autocomplete').css('z-index', 1050);},
source : function(requete, response){ // les deux arguments représentent les données nécessaires au plugin
$.ajax({
url : 'https://data.enseignementsup-recherche.gouv.fr/api/records/1.0/search//?dataset=fr-esr-principaux-etablissements-enseignement-superieur', // on appelle le script JSON
dataType : 'json', // on spécifie bien que le type de données est en JSON
data : {
q : $('#recherche').val() // on donne la chaîne de caractère tapée dans le champ de recherche
},
success : function(donnee){
console.log('k');
response($.map(donnee, function(){
var tab = [];
for(var i= 0; i < donnee["records"].length; i++)
{
tab[i] = donnee["records"][i]["fields"]["uo_lib"];
}
console.log(tab);
return tab; // on retourne le tableau des écoles
}));
}
});
},
select : function(event, ui){ // lors de la sélection d'une proposition
$('#recherche').val( ui.item.desc ); // on ajoute la description de l'objet dans un bloc
}
});
.ui-autocomplete {
position: absolute;
top: 100%;
left: 0;
max-width: 217px;
z-index: 1000;
float: left;
display: none;
min-width: 160px;
padding: 4px 0;
margin: 0 0 10px 25px;
list-style: none;
background-color: #ffffff;
border-color: #ccc;
border-color: rgba(0, 0, 0, 0.2);
border-style: solid;
border-width: 1px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-webkit-background-clip: padding-box;
-moz-background-clip: padding;
background-clip: padding-box;
*border-right-width: 2px;
*border-bottom-width: 2px;
}
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slideReveal/1.1.2/jquery.slidereveal.min.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<input id="recherche" name="school" class="center bottom-margin-10" type="text" placeholder="Libellée établissement" >
试着写"capitole",你会发现同样的结果出现了3次,我不明白为什么
关于 $.map()
的某些事情运行异常。我切换到 $.each()
并且得到了更好的结果。
$('#recherche').autocomplete({
open: function() {
$('.ui-autocomplete').css('z-index', 1050);
},
source: function(requete, response) {
var tab = [];
$.ajax({
url: 'https://data.enseignementsup-recherche.gouv.fr/api/records/1.0/search//?dataset=fr-esr-principaux-etablissements-enseignement-superieur',
dataType: 'json',
data: {
q: requete.term
},
success: function(donnee) {
console.log('k');
$.each(donnee.records, function(k, v) {
tab.push(v.fields.uo_lib);
});
console.log(tab);
response(tab);
}
});
},
select: function(event, ui) { // lors de la sélection d'une proposition
$('#recherche').val(ui.item.desc); // on ajoute la description de l'objet dans un bloc
}
});
.ui-autocomplete {
position: absolute;
top: 100%;
left: 0;
max-width: 217px;
z-index: 1000;
float: left;
display: none;
min-width: 160px;
padding: 4px 0;
margin: 0 0 10px 25px;
list-style: none;
background-color: #ffffff;
border-color: #ccc;
border-color: rgba(0, 0, 0, 0.2);
border-style: solid;
border-width: 1px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-webkit-background-clip: padding-box;
-moz-background-clip: padding;
background-clip: padding-box;
*border-right-width: 2px;
*border-bottom-width: 2px;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slideReveal/1.1.2/jquery.slidereveal.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<input id="recherche" name="school" class="center bottom-margin-10" type="text" placeholder="Libellée établissement">
没有进行任何其他更改。如果可以使用对象,也最好使用点符号。
希望对您有所帮助。
我目前正在创建一个网站,我必须使用 API 来恢复法国的所有高等教育学校,这样当用户注册时,他输入他的大学并提供选择他感谢 Jquery ui 自动完成。
这就是它给出的:
$('#recherche').autocomplete({
open: function () { $('.ui-autocomplete').css('z-index', 1050);},
source : function(requete, response){ // les deux arguments représentent les données nécessaires au plugin
$.ajax({
url : 'https://data.enseignementsup-recherche.gouv.fr/api/records/1.0/search//?dataset=fr-esr-principaux-etablissements-enseignement-superieur', // on appelle le script JSON
dataType : 'json', // on spécifie bien que le type de données est en JSON
data : {
q : $('#recherche').val() // on donne la chaîne de caractère tapée dans le champ de recherche
},
success : function(donnee){
console.log('k');
response($.map(donnee, function(){
var tab = [];
for(var i= 0; i < donnee["records"].length; i++)
{
tab[i] = donnee["records"][i]["fields"]["uo_lib"];
}
console.log(tab);
return tab; // on retourne le tableau des écoles
}));
}
});
},
select : function(event, ui){ // lors de la sélection d'une proposition
$('#recherche').val( ui.item.desc ); // on ajoute la description de l'objet dans un bloc
}
});
.ui-autocomplete {
position: absolute;
top: 100%;
left: 0;
max-width: 217px;
z-index: 1000;
float: left;
display: none;
min-width: 160px;
padding: 4px 0;
margin: 0 0 10px 25px;
list-style: none;
background-color: #ffffff;
border-color: #ccc;
border-color: rgba(0, 0, 0, 0.2);
border-style: solid;
border-width: 1px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-webkit-background-clip: padding-box;
-moz-background-clip: padding;
background-clip: padding-box;
*border-right-width: 2px;
*border-bottom-width: 2px;
}
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slideReveal/1.1.2/jquery.slidereveal.min.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<input id="recherche" name="school" class="center bottom-margin-10" type="text" placeholder="Libellée établissement" >
试着写"capitole",你会发现同样的结果出现了3次,我不明白为什么
关于 $.map()
的某些事情运行异常。我切换到 $.each()
并且得到了更好的结果。
$('#recherche').autocomplete({
open: function() {
$('.ui-autocomplete').css('z-index', 1050);
},
source: function(requete, response) {
var tab = [];
$.ajax({
url: 'https://data.enseignementsup-recherche.gouv.fr/api/records/1.0/search//?dataset=fr-esr-principaux-etablissements-enseignement-superieur',
dataType: 'json',
data: {
q: requete.term
},
success: function(donnee) {
console.log('k');
$.each(donnee.records, function(k, v) {
tab.push(v.fields.uo_lib);
});
console.log(tab);
response(tab);
}
});
},
select: function(event, ui) { // lors de la sélection d'une proposition
$('#recherche').val(ui.item.desc); // on ajoute la description de l'objet dans un bloc
}
});
.ui-autocomplete {
position: absolute;
top: 100%;
left: 0;
max-width: 217px;
z-index: 1000;
float: left;
display: none;
min-width: 160px;
padding: 4px 0;
margin: 0 0 10px 25px;
list-style: none;
background-color: #ffffff;
border-color: #ccc;
border-color: rgba(0, 0, 0, 0.2);
border-style: solid;
border-width: 1px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-webkit-background-clip: padding-box;
-moz-background-clip: padding;
background-clip: padding-box;
*border-right-width: 2px;
*border-bottom-width: 2px;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slideReveal/1.1.2/jquery.slidereveal.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<input id="recherche" name="school" class="center bottom-margin-10" type="text" placeholder="Libellée établissement">
没有进行任何其他更改。如果可以使用对象,也最好使用点符号。
希望对您有所帮助。