[resolu]Ajax.updater et IE

Ajax.updater et IE [resolu] - HTML/CSS - Programmation

Marsh Posté le 26-06-2009 à 14:42:02    

Voici un script qui fonctionne très bien sous FF2 et 3, en utilisant Ajax à partir du framework Prototype :
 

Code :
  1. <script type="text/javascript">
  2. Event.observe(window, 'keyup', init, false);
  3. function init(){
  4.      Event.observe('codepostal', 'keyup', complete_select(), false);
  5. }
  6. function complete_select(){
  7.      var url = 'php/complete_select.php';
  8.      var pars = 'codepostal='+escape($F('codepostal'));
  9.      var target = 'champville';
  10.      var myAjax = new Ajax.Updater(target, url, {method: 'post', parameters: pars});
  11. }
  12. </script>
  13. ...
  14. <div class="titre">Code postal</div>
  15. <div class="champ"><input class="inputtext" type="text" name="codepostal" id="codepostal" size="5" /></div>
  16. <div class="titre">Ville</div>
  17. <div class="champ" id="champville"><select name="ville"><option value="">Indiquer un code postal</option></select></div>


 
Sauf qu'au lieu de fonctionner, sous IE6, il m'affiche une erreur JS, et sous IE7, rien ne se passe.
 
Après insertion d'un :
 

Code :
  1. alert("plop" );


 
Dans la fonction complete_select(), on s'aperçoit que celle-ci n'est pas appelée sous IE (alors qu'elle l'est sous FF). Une idée ?


Message édité par Yagmoth le 26-06-2009 à 15:47:14

---------------
L'ennemi est bête : il croit que c'est nous l'ennemi alors que c'est lui !
Reply

Marsh Posté le 26-06-2009 à 14:42:02   

Reply

Marsh Posté le 26-06-2009 à 14:59:21    

salut,

 

je connais pas bien prototype, mais je ne comprend pas ton code. tu a un premier evenement (keyup sur l'objet window) qui lance une fonction qui te crée le second (keyup sur codepostal) ?

 

sinon, en tout cas j'ai le même résultat que toi...


Message édité par pataluc le 26-06-2009 à 14:59:39
Reply

Marsh Posté le 26-06-2009 à 15:13:27    

Oui en gros c'est ça :D Quelque chose ne passe pas au niveau de l'appel de complete_select(), sans doute un souci de reconnaissance de l'évènement à surveiller.
Edit : en fait c'est même avant que ça déconne, la fonction init() n'est pas appelée.

 

Edit : résolu, il s'agissait en fait du premier observer sur 'keyup' qui ne réagit pas sous IE, il fallait privilégier l'évènement 'load'.


Message édité par Yagmoth le 26-06-2009 à 15:46:48

---------------
L'ennemi est bête : il croit que c'est nous l'ennemi alors que c'est lui !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed