我已经创建了一个自动完成(建议)字段,因此当您键入时,您会在该字段下方以文本形式获得建议。我重新构建了 javascript,并使文本可点击。因此,当您单击一个模式时(另一个小对话框)。
我想要的只是将建议字段中的文本显示到模式。我正在使用 $.post("thesuggtest.php") 方法,因为我需要获取选择的建议文本(将被单击)并通过 php 和 mysql 在模态中获取有关它的信息。
这是我为此使用的主要 JavaScript,但我遇到了一些问题。
function showHint(str)
{
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
comeon = document.getElementById('comeon');
document.getElementById('predlozi').innerHTML='<a data-toggle="modal" data-backdrop="static" href="#myMail" class="label ttip_b" title="New messages">' + xmlhttp.responseText + '</a><div class="modal hide fade" id="myMail"><div class="modal-header"><button class="close" data-dismiss="modal">×</button><h3>New messages</h3></div><div class="modal-body"><div id="comeon"></div>' + $.post("thesuggtest.php", { 'suggestion' : xmlhttp.responseText },function(data){comeon.innerHTML(data);console.log('Error:', data);}); + '</div></div>';
}
}
xmlhttp.open("GET","gethint.php?q="+str,true);
xmlhttp.send();
}
我正在使用 gethint.php 文件从字段中检索与输入值匹配的建议(我从数组中获取它们)。问题是我无法在模式(对话框)中回显文本。
当我输入 document.write(data) 时,我得到了回显但在空白页上的值。当我输入 comeon.innerHTML(data) 时,我得到了 Uncaught TypeError: Cannot call method 'innerHTML' of null。我知道这种类型的错误是因为它找不到元素 comeon 并且它返回 null。此外,我在应回显文本的模态中得到 [object Object]。
有什么帮助吗?谢谢。