2014-03-05 46 views
0

我無法更改以下代碼,而是必須覆蓋該按鈕的默認功能,以便在單擊時調用自定義javascript方法而不是要提交的表單。覆蓋提交類型按鈕以調用自定義JavaScript方法

而要做到這一點,我必須通過注射使用JavaScript。(使用Twitter的API它是一個AIR桌面應用程序)

誰能幫助?

<body> 
<form><fieldset class="buttons"> 
      <input class="submit button" id="cancel" name="cancel" type="submit" value="Cancel" /> 
</fieldset> 
</form> 
<body> 
+0

爲什麼不改變從'submit'類型'button'開始。 – adeneo

+0

你問如何做注射或關於'event.preventDefault()'? – FGhilardi

回答

1

按鈕更換。你可以通過Ctrl + Enter提交你的表單。

您可以執行以下操作http://jsfiddle.net/tarabyte/R5yQq/

  1. 找到假設您知道按鈕ID的表單。

    function getForm(id) { 
    
        var button = document.getElementById(id); 
    
        while(button && 
          (button = button.parentNode) && 
          (button.nodeName !== 'FORM')){} 
    
        return button; 
    } 
    
  2. 添加'submit'事件監聽器。

    var form = getForm('cancel'), 
        handler = function(ev){ 
        ev = ev || window.event; 
        if(ev.preventDefault) { //w3c browsers 
         ev.preventDefault();  
        } 
        else { //IE old 
         ev.returnValue = false;  
        } 
        alert('Custom logic goes here!'); 
    }; 
    if(form) { 
        if(form.addEventListener) { 
         form.addEventListener('submit', handler, false) 
        } 
        else if(form.attachEvent) { 
         form.attachEvent('onsubmit', handler); 
        }  
    } 
    
0

通過與JS如果你想防止形式從提交overiding點擊不會有足夠的調用你的函數

document.getElementById('cancel').parentNode.innerHTML = '<input type="button" onClick="myFunc()" value="replaced">'; 
window.myFunc = function() { alert('clicked'); return false; } 

http://jsfiddle.net/e37nd/