2011-08-19 56 views
3

我在一個小提琴:http://jsfiddle.net/radi8/Nt556/1/替代Mozilla的explicitOriginalTarget「跨瀏覽器功能

這個類的監聽器綁定到所有的「提交」按鈕的形式。當用戶點擊其中一個按鈕時,類功能將根據需要進行處理。我最初使用FireFox開發這個類,並使用:var btnName = event.originalEvent.explicitOriginalTarget.defaultValue;在其中很有用,但後來我發現這是Mozilla唯一的功能。

任何人都可以提供一個替代IE和Chrome?

我的課:

var RequiredField = { 
    init: function() { 
     var theForm = document.getElementsByTagName("form"); 
     $(theForm).bind("submit", RequiredField.submitListener); 
    }, 

    submitListener: function(event) { 
     event.preventDefault(); 
     var btnName = event.originalEvent.explicitOriginalTarget.defaultValue; 
     if (btnName == 'Process Route') { 
      processType = 0; 
      alert('Process'); 
     } 
     else if (btnName == 'Finalize Route') { 
      processType = 1; 
      alert('Finalize'); 
     } 
     else { 
      processType = 99; 
     } 
     try { 

     } 
     catch (e) { 
      event.preventDefault(); 
     } 
    } 
}; 
RequiredField.init(); 

回答

1

我只是綁定「點擊」的形式:

$('form').delegate(':submit', 'click', RequiredField.submitListener); 

那麼事件的目標將直接按鈕。

+1

這樣做。在提交監聽器函數中,我更改了以下內容:// var btnName = event.originalEvent.explicitOriginalTarget.defaultValue; var btnName = event.currentTarget.value;現在它工作正常。 – radi8