javascript-如何从自动完成函数获取onChange事件的完整值
首先,我不熟悉Javascript。我需要具体的帮助,不仅仅是解释该做什么。谢谢 问题描述: 我有一个文本字段,在用户开始键入后,它会生成一个下拉列表,其中包含数据库中的值……基本上是一个自动完成的功能 根据此文本字段中的值,需要使用该值启动另一个进程。但问题是,该值只是用户在字段中键入的值,而不是用户最终从自动完成列表中选择的值 例如: 我输入“bo”,自动完成列表生成“boeing”。我点击boeing来填写这个字段。。。但得到的价值是“bo” 如何捕获完整的值并在下面解释的onChange事件中使用它? 混凝土材料: 1) 字段:javascript-如何从自动完成函数获取onChange事件的完整值,javascript,onchange,Javascript,Onchange,首先,我不熟悉Javascript。我需要具体的帮助,不仅仅是解释该做什么。谢谢 问题描述: 我有一个文本字段,在用户开始键入后,它会生成一个下拉列表,其中包含数据库中的值……基本上是一个自动完成的功能 根据此文本字段中的值,需要使用该值启动另一个进程。但问题是,该值只是用户在字段中键入的值,而不是用户最终从自动完成列表中选择的值 例如: 我输入“bo”,自动完成列表生成“boeing”。我点击boeing来填写这个字段。。。但得到的价值是“bo” 如何捕获完整的值并在下面解释的onChange
<input type=\"text\" size=\"30\" name=\"manuList\"
id=\"inputString\" value=\"$_POST[manu_prev]\"
onkeyup=\"lookup(this.value);\" onblur=\"fill();\"
onChange=\"htmlData('get_model.php', 'ch='+this.value)/>
<div class=\"suggestionsBox\" id=\"suggestions\"
style=\"display: none;\">
<img src=\"/images/upArrow.png\"
style=\"position: relative; top: -12px;
left: 30px;\" alt=\"upArrow\" />
<div class=\"suggestionList\" id=\"autoSuggestionsList\">
</div>
</div>
启动的php脚本“get_model.php”打印以下值:
echo $_GET['ch'];
用于自动完成的其他功能:
function lookup(inputString)
{
if(inputString.length == 0)
{
// Hide the suggestion box.
$('#suggestions').hide();
} else
{
$.post("rpc.php", {queryString: ""+inputString+""}, function(data)
{
if(data.length >0)
{
$('#suggestions').show();
$('#autoSuggestionsList').html(data);
}
});
}
} // lookup
function fill(thisValue)
{
$('#inputString').val(thisValue);
setTimeout("$('#suggestions').hide();", 200);
}
function GetXmlHttpObject(handler)
{
var objXMLHttp=null
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest()
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return objXMLHttp
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtResult").innerHTML= xmlHttp.responseText;
}
else
{
//alert(xmlHttp.status);
}
}
您需要收听您创建的列表上的事件-您能给出一个填充
autoSuggestionsList
例如,它可能是通过以下行添加的列表:
$('autoSuggestionsList').html(数据)代码>
那可以给你
<div class=\"suggestionList\" id=\"autoSuggestionsList\">
<ul id="unOrderedList">
<li value="2">Whatever</li>
......
</ul>
</div>
这将替换输入字段上的onchange事件您在这里使用jquery吗?看起来您使用的是$()语法……是的,下面是jquery(ajax)查询数据库以获得自动完成的答案。。。。或者有一个插件->键入“bo”将生成:Boeing Boeing Canada Bombardier Bowers他们都是aicraft制造商。你需要将他们放入某种HTML元素中,然后添加一个侦听器,以便对他们的选择做出反应……好的,所以我将id添加到我的列表中。。。echo“”;虽然($row=mysqli_fetch_assoc($result)){//onClick函数将结果填充到文本框中。echo“
”,然后我更改了函数“fill”(请参见我的原始名称):$('#inputString').val(此值);setTimeout($('#建议').hide();“,200);$('#制造商列表li')。单击(函数(){var val=$(this.attr('value');htmlData('get_airpair.php','ch='+val)});结果是系统告诉我变量未定义。有什么建议吗?抱歉,我想很好地回答你的答案,但不知道如何回答。这些命令不允许我格式化编码。@ManseUK谢谢你……它工作得很好!!!!我已将函数fill()更改为:函数fill(thisValue){$('#inputString').val(thisValue);setTimeout($('#建议')。hide();”,200);$('#manufacture_list li')。单击(函数(){val=$(this.attr('value');htmlData('get_airpair.php','ch='+(thisValue));})
<div class=\"suggestionList\" id=\"autoSuggestionsList\">
<ul id="unOrderedList">
<li value="2">Whatever</li>
......
</ul>
</div>
$('#unOrderedList li').click(function(){
var value = $(this).attr('value');
// Do what every you want with the data.....
});