2010-03-23 3 views
0

J'essaye de déclencher un événement de clic pour un bouton de jquery. ça marche très bien en FF mais IE (toutes les versions) semble l'ignorer. ce que je l'ai essayé jusqu'à présent ..événement de clic n'est pas déclenché dans IE

$('#uxcSubmit').trigger('click'); 

alors essayé ce ..

$('#uxcSubmit').click(); 

juste pour effacer ce out..even ..

jquery('#uxcSubmit').click(); 

alors même essayé ce pour vérifier si c'est un problème de jquery ..

document.getElementById('uxcSubmit').click(); 

rien ne semble aider IE ..

merci d'avance ..

Mise à jour: c'est le code .. et pas je n'ai pas d'éléments du même id ..

<div id="uxcSavingDiv">Click sumbit to save changes...</div> 
<input id="uxcSubmit" value="Submit" onclick="return SaveChange();"/> 
<script type="text/javascript"> 
function getFrameValue() { 
    if (Stage == 0) { 
      $('#uxsHiddenField').attr("value", "saved"); 
      Stage = 1; 
      $('#uxSubmit').click(); 
      return false; 
    } 
    else { 
     $('#uxcSavingDiv').innerHTML = "Saving..."; 
     return true; 
    } 
} 
</script> 

je crois avoir été clair ici

+0

on dirait que vous avez plusieurs éléments avec le même ID - ne pas? – yedpodtrzitko

+0

Vous devez publier tout le bloc de code dans lequel vous essayez ceci, et ce que vous essayez de faire (par exemple, si vous essayez de déclencher un événement personnalisé qui a été attaché auparavant ou si vous attendez un comportement du navigateur, par exemple forme). Si vous voulez soumettre un formulaire, il est préférable d'utiliser $ ("# formID"). Submit(). Si vous essayez de déclencher un événement attaché, assurez-vous que vous n'appelez pas .click() dans la même fonction que celle qui associe cet événement, il est possible que IE ne l'attache qu'après le retour de la fonction en cours. – Felix

+0

voir http: // stackoverflow.com/questions/980709/javascript-invoquant-click-event-of-a-anchor-tag-from-javascript – knittl

Répondre

1

Dans le code que vous avez posté Stage est indéfini, IE ne va pas aimer ça. De plus, $('#uxSubmit').click(); doit être $('#uxcSubmit').click();. Je ne savais pas non plus quand vous appeliez getFrameValue(); mais cela doit être fait à document.ready ou après, ou les éléments ne seront pas là pour faire correspondre les sélecteurs.

je nettoyais le reste d'utiliser des méthodes jQuery ainsi (en laissant le en ligne pour démonstration, mais je supprimer ce aussi bien et changer à un gestionnaire de clic), cela fonctionne très bien dans IE8:

<div id="uxcSavingDiv">Click sumbit to save changes...</div> 
<input id="uxcSubmit" value="submit" onclick="return SaveChange();"/> 
<script type="text/javascript"> 
var Stage = 0; 
function getFrameValue() { 
    if (Stage == 0) { 
      $('#uxsHiddenField').val("saved"); 
      Stage = 1; 
      $('#uxcSubmit').click(); 
      return false; 
    } 
    else { 
     $('#uxcSavingDiv').html("Saving..."); 
     return true; 
    } 
} 
function SaveChange() { 
    alert("Value clicked"); 
} 
$(function(){ 
    getFrameValue(); //Trigger it on document.ready 
}); 
</script> 

pour modifier ce SaveChange() à un gestionnaire de clic lié, retirez le onclick et le faire sur prêt:

$('#uxcSubmit').click(SaveChange); 
+0

on dirait que vous l'avez couvert pour moi –

0
$("#uxcSubmit").closest("form").submit('SaveChange'); //let SaveChange() return true/false 

... et supprimer inline 'onclick' attribut

0

Le morceau de code correspondant de jQuery devrait être celui

// Trigger an inline bound script 
try { 
    if (!(elem && elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()])) { 
     if (elem[ "on" + type ] && elem[ "on" + type ].apply(elem, data) === false) { 
      event.result = false; 
     } 
    } 
    // prevent IE from throwing an error for some elements with some event types, see #3533 
} catch (e) {} 

Donc je suppose que ce soit a quelque chose à voir avec bogue mentionné 3533 (que je ne peux pas vérifier que dev.jquery.com est en baisse à le moment) ou il y a un autre bug IE. BTW obtenez-vous des avertissements dans la console d'erreur?

+0

non il n'y a pas d'avertissements .. – ZX12R

Questions connexes