2013-12-21 49 views
0

我正在處理這段代碼以顯示客戶端列表,並且點擊它使用所選名稱和隱藏文本字段填充文本字段。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> 

平變化它使用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 selectClient

function selectClient(name,id) 
{ 
    document.getElementById("id").value = id; 
    document.getElementById("client").value = name; 
    document.getElementById("search_results").innerHTML = ""; 
} 

我的問題是: 這不是工作在Chrome,但工作得很好IE。 任何人都知道我在這裏錯過了什麼?

感謝您的幫助。

+1

如果您使用的是jQuery,爲什麼要使用XMLHttpRequest的AJAX方法? – j08691

回答

3

這是無效的html。你不能有一個錨定標籤纏繞TR。

將onclick添加到TR並擺脫錨點,或移動td內的錨點。

+0

我會堅持你最後的建議來保持錨,因爲錨從鍵盤上工作。對沒有內置點擊行爲的元素點擊處理程序是可訪問性失敗... – nnnnnn

0

<tr>中不能有<a>標籤。因此,嘗試在ONCLICK的<tr>

與此

echo '<tr><td onClick="selectClient('.$fullname.','.$row[0].')" class="cap">'.$fullname.'</td></tr>'; 
0

我覺得你在你的代碼中提到的錨標記是正確的問題它和

回聲的價值,那麼你會得到一個清晰的想法。

+0

所以你對OP的問題的答案是他們應該「糾正它」?你能更具體一點嗎? – nnnnnn