我做了一个自动补全(建议)字段,所以当你输入时,你会在字段下面得到建议作为文本。我重建了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)我得到的值回声,但在空白页上。当我把come .innerHTML(数据)我得到未捕获的TypeError:不能调用null的方法'innerHTML'。我知道这种类型的错误是因为它找不到元素comeon,它返回null。我也得到[object object]在模态中,回声文本应该是。
帮忙吗?谢谢。
我注意到一些问题;
comeon = document.getElementById('comeon');
您甚至不使用comeondiv,但您试图在创建它之前获得它。在这行下面创建"comeon"div
$.post("thesuggtest.php", { 'suggestion' : xmlhttp.responseText },function(data){comeon.innerHTML(data);console.log('Error:', data);});
$.post
也是一个异步请求,因此它永远不会返回您正在请求的任何文本。你应该把它叫做<a data-toggle="modal"
的其他事件点击。这一次你可以得到"comeon"div。