Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/02/2011, 00h13   #1
Invité de passage
 
Inscription : octobre 2009
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 9
Points : 0
Points : 0
Par défaut Evaluation de balise script affiché dynamiquement dans un div ne fonctionne pas

Hello,

J'ai une lite déroulante qui affiche une zone de texte dans un div avec un onchange. Le code html inséré dans le div est le suivant :

Code html :
1
2
3
4
5
6
7
8
9
10
11
12
13
<form name='formSaisieRue'>
<input type='text' size='40' name='saisieRue' id='saisieRue' />
<div id='saisieRue_update'></div>
<input type='hidden' name='rue_id' value=''/>
<input type='button' value='Ok' onclick=\"traitementsaisierue()\">
</form>
<script type='text/javascript'>
alert('test');
document.getElementById('saisieRue').focus();
new Ajax.Autocompleter ('saisieRue', 'saisieRue_update','autoCompRue.php',
	{method: 'post', paramName: 'saisieRue', parameters: 'ville=2',	afterUpdateElement: getSelectionId}
);
</script>

J'utilise une fonction runscript qui permet de forcer l'exécution du code javascript contenu dans des balises <script> insérées dynamiquement dans le div trouvée dans ce topic

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function runScript( txt){
  var sJs = "";
  // recuperation des scripts balises incluses
  var sScript = "<script[^>]*>([\\S\\s]*?)<\/script>";
  var sReg    = new RegExp( sScript, 'img');
  var oScript = txt.match( sReg);
  if( oScript){
    for(var i = 0; i < oScript.length; i++){
      sReg = new RegExp( sScript, 'im');
      // recuperation du code des scripts
      sJs += oScript[i].match( sReg)[1];
    }
    try{
      // execution du code
      eval( sJs);
    }catch(e){ }
  }
}
J'aimerais que cette zone de texte reçoive le focus à son apparition et qu'elle puisse recevoir une autocomplétion.
Le alert('test') fonctionne, (donc la fonction runscript force bien l'exécution du code js contenu dans les balises script) mais le focus et l'autocompletion ne fonctionnent pas... Je ne vois pas bien pourquoi puisque quand j'affiche directement la zone de texte (sans le passage par le div) les 2 fonctionnent. (donc le code doit être bon...) Un vrai casse-tête pour moi ! Si une âme charitable veut bien m'aider
John-Deluxe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2011, 19h26   #2
Invité de passage
 
Inscription : octobre 2009
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 9
Points : 0
Points : 0
J'ai trouvé pour le focus ! Il doit y avoir une confusion entre les 2 formulaires.
Code :
document.formSaisieRue.saisieRue.focus();
Mais l'autocompletion ne marche toujours pas. En fait il semblerait que la fonction autocompleter ne soit tout simplement pas appelée... Je ne comprends pas pourquoi. Quelqu'un aurait une idée ?
John-Deluxe est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h08.


 
 
 
 
Partenaires

Hébergement Web