我刚刚通过jquery创建了一个自动完成文本框,现在我遇到了两个问题。
1)我需要从自动填充列表中获取所选项目的值。
到目前为止,我做了这些......
我的jquery
$(document).ready(function(){
$("#tag").autocomplete("autocomplete.php", {
selectFirst: true
});
});
我从数据库中获取自动完成列表工作正常,但问题是
2)当我输入“r”时,所有带有值的名称都会被填充,如果我从列表中选择说出Robin并尝试使用alert显示它,我只会得到'r',(我只输入r,并选中)列表中的'robin'为什么会这样?
这是我为此写的代码
表示自动填充文本框
<input name="tags" type="text" id="tag" value="" onchange= "newfn()" />
并在newfn()
<script>
function newfn()
{
authname = document.getElementById("tag").value;
document.autoquote.qid.value=authname;
alert(authname);
}
</script>
如果我首先发出警告
alert("Hi");
然后,我得到第一个警告说你好,我得知的不是r
那么从自动填充列表中选择什么值的正确方法是什么?
现在我的第二个问题是从这个自动完成文本框中选择的值,我需要将它与另一个jquery一起传递到另一个php页面,以便我可以在那里得到这个值并在查询中作为标准给它。
答案 0 :(得分:1)
您可以使用自动填充的选择属性,例如
$("#tag").autocomplete('autocomplete.php', {
selectFirst: true,
select: function (event, ui) {
var label = ui.item.label;
var value = ui.item.value;
alert(label);
alert(value)
// you can write additional javascript code here to make use of these values
}
});
请查看jQuery UI documentation以获取更多示例和信息。
这是一个 JSFiddle 。(请注意,在小提琴中添加了一个额外的源属性来模拟数据集的加载,因为不允许真正的跨域AJAX调用)
答案 1 :(得分:1)
因为它不是捕捉选择事件http://api.jqueryui.com/autocomplete/#event-select的方式:
$(document).ready(function(){
$("#tag").autocomplete("autocomplete.php", {
selectFirst: true,
select: function( event, ui ) {
//Then use "ui" object, for example ui.item.label or ui.item.value
}
});
});
答案 2 :(得分:1)
$(".autosearch-smart").autocomplete('autocomplete.php', {
select: function( event, ui ) {
// here you can get id and values from the autocomplete list
// try to debug
console.log(ui.item.id);
console.log(ui.item.label);
console.log(ui.item.value);
}
});
答案 3 :(得分:0)
$(document).ready(function(){
$("#tag").autocomplete("autocomplete.php", {
selectFirst: true
select: function( event, ui ) {
//check the values in console
alert(ui.item.value+" - "+ui.item.value);
}
});
});