【发布时间】:2013-12-21 04:50:44
【问题描述】:
我正在编写此代码以显示客户端列表并单击它以填充具有所选名称的文本字段和隐藏的 id 文本字段。
HTML
<input type="hidden" id="id" value="" />
<input type="text" name="client" id="client" class="round full-width-input" value="Type a name..." onChange="searchClient()" onkeypress="this.onchange();" onpaste="this.onchange();" oninput="this.onchange();" onfocus="if(this.value=='Type a name...') {this.value=''}" onblur="if(this.value == ''){this.value='Type a name...'; document.getElementById('search_results').innerHTML = '';}" />
<label style="margin:0 0 0 1%"><i id="search_results"></i></label>
Onchange 它使用 javascript 来调用一个 php 文件。
Javascript
function searchClient()
{
var str = document.getElementById("client").value;
if (str == "")
{
document.getElementById("search_results").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)
{
document.getElementById("search_results").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET","search_client.php?name="+str,true);
xmlhttp.send();
}
php 文件正在返回列表并填充标签。以下是从 PHP 文件返回的内容
echo '<a onClick="selectClient('.$fullname.','.$row[0].')">
<tr><td class="cap">'.$fullname.'</td></tr></a>';
然后我可以单击列表并再次调用 javascript 来填充文本字段。
Javascript 选择客户端
function selectClient(name,id)
{
document.getElementById("id").value = id;
document.getElementById("client").value = name;
document.getElementById("search_results").innerHTML = "";
}
我的问题是: 这不适用于 Chrome,但在 IE 上运行良好。 有人知道我在这里想念什么吗?
感谢您的帮助。
【问题讨论】:
-
如果您使用 jQuery,为什么要使用 XMLHttpRequest 的普通 AJAX 方法?
标签: javascript php jquery html google-chrome