2014-01-30 44 views
0

下面的代碼中,我一直在努力,onkeyup事件不工作指定

<link href="css/bootstrap.min.css" rel="stylesheet"> 
    <link href="css/bootstrap-tagsinput.css" rel="stylesheet"> 

    <script src="js/jquery.js"></script> 
    <script src="js/bootstrap.min.js"></script> 
    <script src="js/bootstrap-tagsinput.min.js"></script> 

    <script> 
    var request; 

     function sendInfo(){ 
      var v=document.main.io.value; 
      var url="myjsp.jsp?val="+v; 

      if(window.XMLHttpRequest){ 
       request=new XMLHttpRequest(); 
      } 
      else if(window.ActiveXObject){ 
      request=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 

      try{ 
       request.onreadystatechange=getInfo; 
       request.open("GET",url,true); 
       request.send(); 
      }catch(e){ 
       alert("Unable to connect to server"); 
      } 
     } 

     function getInfo(){ 
      if(request.readyState==4){ 
       var m=request.responseText; 
       document.getElementById('sam').innerHTML=m; 

      } 
     } 

    </script> 

</head> 
<body> 
    <form name="main"> 
     <input type="text" name="io" onkeyup="sendInfo()" data-role="tagsinput"/> 
    </form> 
    <div id="sam"> 
    </div> 
</body> 

我沒有將「myjsp.jsp」文件,因爲我確信它沒有任何問題。

如果我創建文本框,如下所示,

<input type="text" name="io" onkeyup="sendInfo()"/> 

則函數 「sendInfo()」 之稱,但如果我添加 「數據角色= 'tagsinput'」 一樣,

<input type="text" name="io" onkeyup="sendInfo()" data-role="tagsinput"/> 

則不調用函數「sendInfo()」。

我必須寫data-role="tagsinput"產生引導標籤,但我也希望函數「sendInfo()」執行。 關於這種情況的任何建議? 在此先感謝。

回答

0

您可以用JavaScript添加事件偵聽器:

window.attachEvent = function(){ 
    document.querySelector("input[data-role='tagsinput']").onkeyup(function(){ 
     sendInfo(); 
    }); 
}; 
window.addEventListener("load", attachEvent); 

,以確保您的功能的可訪問性,在窗口的上下文定義它:

window.sendInfo=function sendInfo(){/.../} 

,你也可以嘗試身體onload屬性:

<body onload="attachEvent();">...</body> 
+0

我從文本框中刪除了「onkeyup = sendInfo()」,並添加了你的代碼,但仍然沒有任何成就。 –