Jquery UI自动完成不会选择所有字段文本
我对jQueryUIAutoComplete有一个问题:它只选择在字段中键入的文本的开头(字符预选),而不是整个文本。例如,选择“战略”而不是“战略” 以下是我的js代码:Jquery UI自动完成不会选择所有字段文本,jquery,user-interface,jquery-ui-autocomplete,Jquery,User Interface,Jquery Ui Autocomplete,我对jQueryUIAutoComplete有一个问题:它只选择在字段中键入的文本的开头(字符预选),而不是整个文本。例如,选择“战略”而不是“战略” 以下是我的js代码: $(document).ready(function() { function doTag(iId, sLibelle) { $.ajax({ type: "GET", url: "../../bobookmarks/content/json/put_tag_in_s
$(document).ready(function() {
function doTag(iId, sLibelle) {
$.ajax({
type: "GET",
url: "../../bobookmarks/content/json/put_tag_in_session.php",
contentType : "application/json; charset=utf-8",
dataType: "json",
data: {iId: iId,
sLibelle : sLibelle },
success: function(data) {
if (data=="erreur") {
sErreur = "Une erreur est survenue";
console.log(sErreur + "bo.js:L18");
alert(sErreur);
return false;
}
},
error: function(jqXHR, textStatus, errorThrown) {
var s = "Une erreur est survenue";
alert(s);
}
})
var sLi;
sLi = "<li class=\"tags\">";
sLi += "<a href=\"#\" title=\"Supprimer ce tag\"><span class=\"label label-primary\">"+$("#tag").val()+"</span></a>";
sLi += "<a href=\"#\" title=\"Supprimer ce tag\" class=\"form_ajout_tag_suppr\"><span class=\"glyphicon glyphicon-remove\"></span></a>";
sLi += "</li>";
$("#tags_liste").append(sLi);
$("#tag").val("");
return true;
} // -- doTag()
if ($("#tag").length > 0) {
$("#tag").autocomplete({
minLength:3,
source: function(request,response) {
$.ajax({
type : "GET",
url : "../../bobookmarks/content/json/get_tags.php",
contentType : "application/json; charset=utf-8",
dataType : "json",
data : { term: $("#tag").val() },
success : function(data) {
if (data=="erreur") {
alert("Une erreur est survenue");
return false;
}
response($.map(data, function(item) {
return { id: item.catv_num,
value: item.catv_v_libelle
}
}) // -- fin response
)}, // -- fin success
error: function(jqXHR, textStatus, errorThrown) {
var s = "Une erreur est survenue";
console.log(s+" (bo.js:L74)");
alert(s);
}
}) // -- fin ajax
}, // -- fin source
});
$("#tag").on("autocompleteselect", function(event, ui) {
$("#tags_autocomplete_flag").val(1);
console.log("tags_autocomplete_flag val (dans autocompleteresponse) : "+$("#tags_autocomplete_flag").val());
doTag(ui.id, ui.value);
});
$("#tag").blur( function() {
console.log("tags_autocomplete_flag val (entrée blur) : "+$("#tags_autocomplete_flag").val());
if ($("#tags_autocomplete_flag").val()==1) {
console.log("tags_autocomplete_flag val (blur(), conditon ==1) : "+$("#tags_autocomplete_flag").val());
// Le tag vient de la base (autocomplétion)
// la mise en session a déjà été traitée ci-dessus (L80 à 84)
// on remet le flag à 0
$("#tags_autocomplete_flag").val(0);
} else { // Le tag ne vient pas de la base
console.log("tags_autocomplete_flag val (si = 0 condition else) : "+$("#tags_autocomplete_flag").val());
doTag(0, $("#tag").val());
}
});
}
});
$(文档).ready(函数(){
函数doTag(iId,sLibelle){
$.ajax({
键入:“获取”,
url:“../bobookmarks/content/json/put_tag_in_session.php”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
数据:{iId:iId,
sLibelle:sLibelle},
成功:函数(数据){
如果(数据==“erreur”){
sErreur=“最坏的结果”;
log(sErreur+“bo.js:L18”);
警报(sErreur);
返回false;
}
},
错误:函数(jqXHR,textStatus,errorshown){
var s=“不可能是错误的”;
警报;
}
})
var-sLi;
sLi=“”;
sLi+=“”;
sLi+=“”;
sLi+=“ ”;
$(“#tags_liste”).append(sLi);
$(“#tag”).val(“”);
返回true;
}//--doTag()
如果($(“#标记”).length>0{
$(“#标记”).autocomplete({
最小长度:3,
来源:功能(请求、响应){
$.ajax({
键入:“获取”,
url:“../bobookmarks/content/json/get_tags.php”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
数据:{term:$(“#tag”).val()},
成功:函数(数据){
如果(数据==“erreur”){
警报(“紧急情况”);
返回false;
}
响应($.map)(数据,函数(项){
返回{id:item.catv_num,
值:item.catv\u libelle
}
})/——鳍响应
)},/——财务成功
错误:函数(jqXHR,textStatus,errorshown){
var s=“不可能是错误的”;
log(s+“(bo.js:L74)”;
警报;
}
})/--fin ajax
},/——鳍源
});
$(“#标记”)。打开(“自动完成选择”,函数(事件,用户界面){
$(“#标记"自动完成"标志”).val(1);
log(“tags_autocomplete_flag val(dans autocompleterensponse):”+$(“#tags_autocomplete_flag”).val();
doTag(ui.id,ui.value);
});
$(“#标记”).blur(函数(){
log(“tags_autocomplete_flag val(entrée blur):”+$(“#tags_autocomplete_flag”).val();
if($(“#tags_autocomplete_flag”).val()==1{
log(“tags_autocomplete_flag val(blur(),conditon==1):”+$(“#tags_autocomplete_flag”).val();
//Le tag vient de la base(自动完工)
//这是一个典型的故事(1980年至1984年)
//关于remet le flagá0
$(“#标记"自动完成"标志”).val(0);
}其他{//Le tag ne vient pas de la base
log(“tags_autocomplete_flag val(si=0条件其他):”+$(“#tags_autocomplete_flag”).val();
doTag(0,$(“#tag”).val();
}
});
}
});
提前感谢您的帮助 打电话时:
doTag(ui.id,ui.value)代码>
这没有得到正确的内容。如果查看,您将看到:
选择(事件、用户界面)类型:自动完成选择
从菜单中选择项目时触发。默认操作是用选定项的值替换文本字段的值
取消此事件会阻止更新值,但不会
不阻止菜单关闭
事件
Type: Event
ui
Type: Object
项目
Type: Object
An Object with label and value properties for the selected option.
您应该拨打:
doTag(ui.id、ui.item.value)代码>
从自动完成列表中获取完整的选定值。此处测试:当您呼叫时:
doTag(ui.id,ui.value)代码>
这没有得到正确的内容。如果查看,您将看到:
选择(事件、用户界面)类型:自动完成选择
从菜单中选择项目时触发。默认操作是用选定项的值替换文本字段的值
取消此事件会阻止更新值,但不会
不阻止菜单关闭
事件
Type: Event
ui
Type: Object
项目
Type: Object
An Object with label and value properties for the selected option.
您应该拨打:
doTag(ui.id、ui.item.value)代码>
从自动完成列表中获取完整的选定值。这里测试:你读了minLength
的API详细信息了吗?是的,我当然读了,但这似乎不是问题所在。那么问题出在哪里?这似乎是预期的行为,即键入3个字符后,自动完成将尝试查找可能选择的列表。您是否阅读了minLength
的API详细信息?是的,我当然阅读,但似乎不是问题。那么问题出在哪里?