2012-08-24 28 views
1

我是JavaScript的新手,我有一個帶有按鈕的HTML文件,當按鈕被點擊時我需要調用下面的JS ...任何想法如何做它<input type="submit" value="Get Push Token" />如何從HTML按鈕調用一些Javascript

請提供ma代碼示例非常感謝!

PushToken.getToken(  
        ["getToken"] ,   
        function(token) { 
           global.token = token; 
        }, 
        function(error) { 
           console.log("Error : \r\n"+error);  
        } 
     ); 

<head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
     <meta name = "format-detection" content = "telephone=no"/> 
     <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width;" /> 
     <link rel="stylesheet" type="text/css" href="css/index.css" /> 
     <title>Hello Cordova</title> 
    </head> 
    <body> 
     <div class="app"> 
      <h1>Apache Cordova™</h1> 
      <div id="deviceready"> 
       <p class="status pending blink">Connecting to Device</p> 
       <p class="status complete blink hide">Device is Ready</p> 
       <p>Click here to get the Token<input type="submit" value="Get Push Token" /> 
      </div> 
     </div> 
     <script type="text/javascript" src="cordova-2.0.0.js"></script> 
     <script type="text/javascript" src="js/index.js"></script> 
     <script type="text/javascript" src="js/PushToken.js"></script> 
     <script type="text/javascript"> 
      app.initialize(); 
     </script> 
    </body> 
</html> 
+0

我認爲這個問題太容易成爲單獨答案的一部分。該按鈕是不是一個正常的按鈕,讓我建議與提交寫像 '' 在你的js '函數x(){ }' –

+0

如果你投票反對,請寫評論,這樣我就可以改善這個問題..可能要感謝 – GibboK

+0

首先使用輸入類型按鈕。 – F0G

回答

3

沒有使用jQuery

在一個簡單的組件或應用程序,你不會想要求整個jQuery庫,所以最簡單的方式做這將是這樣的:

HTML:

<input type="submit" value="Get Push Token" id="getPushToken" /> 

的JavaScript:

document.getElementById('getPushToken').onclick=function(){ 
     PushToken.getToken(  
       ["getToken"] ,   
       function(token) { 
          global.token = token; 
       }, 
       function(error) { 
          console.log("Error : \r\n"+error);  
       } 
    ); 
} 

使用jQuery

如果你正在構建一個複雜的應用程序,還有你會想要jQuery的其他東西的好機會,在這種情況下,你不妨做這樣的:

HTML:

<input type="submit" value="Get Push Token" id="getPushToken" /> 

的JavaScript:

$('#getPushToken').click(function(){ 
     PushToken.getToken(  
       ["getToken"] ,   
       function(token) { 
          global.token = token; 
       }, 
       function(error) { 
          console.log("Error : \r\n"+error);  
       } 
    ); 
}); 

瞭解這是怎麼回事

在這兩種情況下,關鍵的一點是,你包的代碼喲你想在一個函數中執行,並將其設置爲該按鈕的單擊事件的處理程序。該按鈕將導致該功能被調用。

使用正確的HTML

如果按鈕是不是一個表單中,你應該使用:

<button id="getPushToken">Get Push Token</button> 

的HTML代替,JavaScript的將是完全一樣的。

+0

感謝您的明確解釋和jQuery版本 – GibboK

0

把代碼中的事件處理函數中,然後調用按鈕的onclick該功能。

HTML:

/* you probably want button, not submit, and it should have an ID */ 
<input type="button" id="someID" value="Get Push Token" /> 

JS:

document.getElementById('someID').onclick = function() { 
    // whatever you want to do here 
}; 

注意,有綁定的事件處理程序等方式,但是這被認爲是最好的做法(保持JavaScript和HTML分開)

相關問題:JavasScript event handling best practice?

1

HTML:

<input type="submit" value="Get Push Token" id="getPushToken" /> 

的JavaScript:

document.getElementById('getPushToken').onclick=function(){ 
     PushToken.getToken(  
       ["getToken"] ,   
       function(token) { 
          global.token = token; 
       }, 
       function(error) { 
          console.log("Error : \r\n"+error);  
       } 
    ); 
} 

反正你有type="submit"輸入,但你沒有任何形式的,這是一個有點廢話。

如果您只是想要一個按鈕,請使用type="button"。如果您想提交表單,請創建一個包含該輸入的表單,其格式爲id,例如myform。然後,

document.getElementById('myform').onsubmit=function(){ 
     PushToken.getToken(  
       ["getToken"] ,   
       function(token) { 
          global.token = token; 
       }, 
       function(error) { 
          console.log("Error : \r\n"+error);  
       } 
    ); 
} 
...