2011-08-19 2 views
3

J'ai un violon à: http://jsfiddle.net/radi8/Nt556/1/alternative à 'explicitOriginalTarget Mozilla pour la fonctionnalité cross navigateur

Cette classe se liera à un auditeur à tous les boutons « submit » sur un formulaire. Lorsque l'utilisateur clique sur l'un des boutons, la fonction de classe le traitera si nécessaire. J'ai développé cette classe à l'origine en utilisant FireFox et en utilisant: var btnName = event.originalEvent.explicitOriginalTarget.defaultValue; fonctionne très bien, mais j'ai trouvé plus tard que c'est une fonction de Mozilla seulement.

Quelqu'un peut-il offrir une alternative pour IE et Chrome?

ma classe:

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(); 

Répondre

1

Je venais de lier « clic » pour la forme:

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

Ensuite, la cible de l'événement sera le bouton directement.

+1

Cela a fait l'affaire. Dans la fonction submit listener, j'ai modifié ce qui suit: // var btnName = event.originalEvent.explicitOriginalTarget.defaultValue; var btnName = événement.currentTarget.value; et ça marche maintenant bien. – radi8

Questions connexes