автоматическое заполнение текстового поля после нажатия клавиши ввода

я получил полезный учебник, где, если вы введете «id» [или первую 1-2 букву вашего идентификатора], остальное поле формы будет заполнено автоматически, потянув данные из базы данных mysql. это произойдет, не нажимая клавишу ENTER! теперь, что я пытаюсь сделать, я буду вводить полный «id» и нажимать клавишу ENTER, чтобы заполнить остальную часть поля формы! какая модификация потребуется для этого кода ниже? вот мой файл index.html:

<html> <body> <script language="javascript" type="text/javascript"> function ajaxFunction(){ var http; // The variable that makes Ajax possible! try{ // Opera 8.0+, Firefox, Safari http = new XMLHttpRequest(); } catch (e){ // Internet Explorer Browsers try{ http = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try{ http = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ // Something went wrong alert("Your browser broke!"); return false; } } } var url = "getagentids.php?param="; var idValue = document.getElementById("agid").value; var myRandom = parseInt(Math.random()*99999999); // cache buster http.open("GET", "getagentids.php?param=" + escape(idValue) + "&rand=" + myRandom, true); http.onreadystatechange = handleHttpResponse; http.send(null); function handleHttpResponse() { if (http.readyState == 4) { results = http.responseText.split(","); document.getElementById('agfn').value = results[0]; document.getElementById('agsal').value = results[1]; document.getElementById('agtel').value = results[2]; document.getElementById('agid').value = results[3]; } } } </script> <form name="schform"> <table> <tr> <td>Contact ID:</td> <td><input id="agid" type="text" name="contactid" onKeyUp="ajaxFunction()"></td> </tr> <tr> <td>Tel Number:</td> <td><input id="agtel" type="text" name="contacttel"></td> </tr> <tr> <td>Name:</td> <td><input id="agfn" type="text" name="contactfullname"></td> </tr> <tr> <td>Salutation:</td> <td><input id="agsal" type="text" name="contactsalutation"></td> </tr> <tr> <td><input type="reset" value="Clear"></td> <td></td> </tr> </table> </form> </body> </html> 

и вот мой файл getagentids.php:

 <?php error_reporting(0); // turns off error reporting $con = mysql_connect("localhost", "root", ""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("contactdetail", $con); mysql_select_db("contactdetail"); $param=$_GET['param']; if (strlen($param) > 0) { $result = mysql_query("SELECT * FROM contact WHERE contactid LIKE '$param%'"); if (mysql_num_rows($result) == 1) { while ($myrow = mysql_fetch_array($result)) { $agentname = $myrow["contactfullname"]; $agenttel = $myrow["contacttel"]; $agentsal = $myrow["contactsalutation"]; $agentid = $myrow["contactid"]; $textout .= $agentid . ", " . $agentname . ", " . $agenttel . ", " . $agentsal; } } else { $textout = " , , ," . $param; } } echo $textout; ?> 

Вы можете изменить свою ajaxFunction как (просто вставьте код вверху вашего ajaxFunction )

 function ajaxFunction(e){ var e=e || window.event; var keycode=e.which || e.keyCode; if(keycode!==13 || (e.target||e.srcElement).value=='') return false; // rest of your code }​ 

И измените свой onKeyUp на это ( event уведомления в аргументе)

 <input id="agid" type="text" name="contactid" onKeyUp="ajaxFunction(event)">​ 

Просто для идеи .

сначала создайте функцию javascript, чтобы определить, нажата ли клавиша Enter, и вызовите ajaxFunction изнутри:

 function run(e) { if (e.keyCode == 13) { ajaxFunction(); return false; //disable the default Enter behavior } return true; } 

измените onKeyUp="ajaxFunction()" в текстовом вводе Contact ID в onKeyUp="run()"