2014-01-19 38 views
0

我在代碼下面編碼。在js中,我可以同時使用「1輸入onkeyup」函數作爲2個腳本函數嗎?

<script> 
function showUser(str) 
{   
    if (str=="") 
    { 
     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) 
     { 
      document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 
     } 
    } 
    var selectedLang = document.getElementById('lang').value; 

    xmlhttp.open("GET","db_"+selectedLang+".php?q="+str,true); 
    xmlhttp.send(); 
} 
</script> 
</head> 
<body> 

    <select name="lang" id="lang" size="2" style="width:99px;"> 
     <option value="co">한국어</option> 
     <option value="en">English</option> 
     <option value="af">Afrikaans</option> 
     <option value="ar">Arabic </option> 
    </select> 
    <form> 
     <input type="text" name="FirstName" maxlength="20" onkeyup="showUser(this.value)"> 
    </form> 

    <p>Suggestions: <span id="txtHint1"></span></p> 
    <br> 
    <div id="txtHint"><b>Person info will be listed here.</b></div> 

上面的代碼是我的ajax函數。下面的代碼是另一個腳本函數。 但是,執行後,第一個腳本函數不起作用,但第二個腳本函數運行良好。

我想同時做2個動作。

<script> 
function showUser(str) 
{ 
    if (str.length==0) 
    { 
     document.getElementById("txtHint1").innerHTML=""; 
     return; 
    } 
    var xmlhttp=new XMLHttpRequest(); 
    xmlhttp.onreadystatechange=function() 
    { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
      document.getElementById("txtHint1").innerHTML=xmlhttp.responseText; 
     } 
    } 

    var selectedLang = document.getElementById('lang').value; 

    xmlhttp.open("GET","ds_hint_"+selectedLang+".php?q="+str,true); 
    xmlhttp.send(); 
} 
</script> 

我可以克服這個問題嗎? 請幫幫我!

回答

0

你可以擁有的onkeyup調用另一個函數,進而調用這兩個函數

<input type="text" name="FirstName" maxlength="20" onkeyup="showUser(this.value)"> 


function showUser(str){ 
showUserFunctionOne(str); 
showUserFunctionTwo(str); 
} 

function showUserFunctionOne(str) 
    { 
    if (str.length==0) 
    { 
    document.getElementById("txtHint1").innerHTML=""; 
    return; 
    } 
    var xmlhttp=new XMLHttpRequest(); 
    xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("txtHint1").innerHTML=xmlhttp.responseText; 
    } 
    } 

var selectedLang = document.getElementById('lang').value; 

xmlhttp.open("GET","ds_hint_"+selectedLang+".php?q="+str,true); 
xmlhttp.send(); 
} 

function showUserFunctionTwo(str) 
    { 

    if (str=="") 
    { 
    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) 
    { 
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 
    } 
    } 
var selectedLang = document.getElementById('lang').value; 

xmlhttp.open("GET","db_"+selectedLang+".php?q="+str,true); 
xmlhttp.send(); 
} 
+0

非常感謝您! – user3183995

相關問題