2009-11-20 3 views
0

J'utilise JQuery de Google CDN et j'ai eu une erreur de débordement de pile (en utilisant IE8) aux lignes 12 (pour le fichier min) et 1076 (pour le non compressé). Le code JQuery à la ligne où l'erreur de débordement de pile me prend est:Dépassement de pile dans IE avec JQuery (ligne 12/1076)

jquery.js ...

makeArray: function(array) { 
    var ret = []; 

    if(array != null){ 
     var i = array.length; 
     // The window, strings (and functions) also have 'length' 
     // @ALL : this is the line i am getting error on ... 
     if(i == null || typeof array === "string" || jQuery.isFunction(array) || array.setInterval) 
      ret[0] = array; 
     else 
      while(i) 
       ret[--i] = array[i]; 
    } 

    return ret; 
}, 

...

Voici mon code: ...

$(document).ready(function(){ 
    $("#newcmpgn").validate({ 
     errorElement:'dt', 
     rules:{agree: "required"}, 
     messages:{agree: "You need to accept to Terms and Conditions in order to continue."} 
    }); 
    $("#newcmpgn").submit(function(){ 
     if($("#newcmpgn").valid()){ 
     var ubal = Number($("#userbalance").val()); 
     var camt = Number($("#amount").val()); 
     if(ubal > camt){ 
      $("#newcmpgn").attr('action', '<?= site_url('account/payments/actpayment/'.$cmpgn_id) ?>'); 
      return true; 
     } 
     if($("#autorenew").attr('value') == 'Y'){ 
      $("#newcmpgn").attr('action', '<?= site_url('account/payments/makepayment/'.$cmpgn_id) ?>'); 
     }else{ 
      $("#newcmpgn").attr('action', '<?= site_url('account/payments/makesinglepayment/'.$cmpgn_id) ?>'); 
     } 
     $("#newcmpgn").submit(); 
     return true; 
     } 
     return false; 
    }); 
    }); 

L'erreur est à venir lors de la soumission du formulaire. Je ne vois pas de code récursif ici qui ferait pleurer IE8 sur le fait de manquer de pile?

Merci, Dw.

+0

J'ai oublié de mentionner - il s'est écrasé Safari 4 aussi bien! Yup - pas d'erreurs, pas de messages, Safari 4 vient de tomber en panne! Aucun message d'erreur sur Firefox 3.5 cependant. –

Répondre

2

Vous appelez $("#newcmpgn").submit(); à l'intérieur de la fonction de soumission.

Cela me semble récursif!

+0

ouais - ça l'a fait! stupide moi - totalement ignoré cela. était censé faire juste "retour vrai". merci beaucoup pour le pointage. –

Questions connexes