나는이 코드를 사용하여 클라이언트 목록을 표시하고 onclick은 선택한 이름과 id의 숨겨진 텍스트 필드로 텍스트 필드를 채 웁니다. 이 PHP 파일을 호출하는 자바 스크립트를 사용 onchange를javascript html이 크롬에서 작동하지 않습니다
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>
.
자바 스크립트
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>';
에서 반환하고 텍스트 필드를 채우기 위해 다시 자바 스크립트를 호출 뭐죠 아래입니다. 이것은 크롬에서 작동하지 않는 하지만, IE 잘 작동 :
자바 스크립트 selectClient
function selectClient(name,id)
{
document.getElementById("id").value = id;
document.getElementById("client").value = name;
document.getElementById("search_results").innerHTML = "";
}
내 문제입니다. 누구나 내가 뭘 놓치고 있는지 알 수 있습니까?
도움 주셔서 감사합니다.
jQuery를 사용하는 이유는 왜 XMLHttpRequest의 긴 AJAX 메소드를 사용하고 있습니까? – j08691