2011-07-28 5 views
1

J'ai écrit une page ajax qui va changer un contenu div particulier. En ce que le code ajax va créer une zone de texte. Maintenant, je voudrais me concentrer sur cette zone de texte après avoir appelé cette fonction. sur cliquer sur un bouton de la fonction sera appelé commefocus sur une zone de texte créée par ajax

function addnewitem5() 
{ 

if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("aa433").innerHTML=xmlhttp.responseText; 

    } 
    } 


    xmlhttp.open("GET","ajax-production.php?type=sales",true); 
xmlhttp.send(); 

} 

sur la ajax-production.php le code est juste

<?php echo '<input type="text" name="barcode" id="barcode"/>';?> 

Comment puis-je me concentrer sur cette zone de texte?

Répondre

3
if (xmlhttp.readyState==4 && xmlhttp.status==200){ 

    document.getElementById("aa433").innerHTML=xmlhttp.responseText; 
    document.getElementById("textboxname").focus(); 
} 

par ce que vous pouvez mettre l'accent sur zone de texte ..

1

Après la innerHtml vous pouvez ajouter mise au point par .focus()

document.getElementById("aa433").innerHTML=xmlhttp.responseText; 
document.getElementById("barcode").focus(); 
+0

Quel est le problème pour obtenir un - vote? – Sarath

0

Ne pas utiliser innerHTML, il est une méthode propriétaire Microsoft peu fiable et NON simplement parce que quelqu'un a pensé à l'ajouter à la spécification HTML5 ne le rend pas légitime à utiliser.

Le problème est que innerHTML fonctionne juste assez pour vous faire penser qu'il fonctionne. Lorsque vous l'utilisez en mode écriture, il ne fait que lancer le code HTML là où vous l'avez spécifié, bien qu'il n'inscrive pas correctement les nœuds. Donc, fondamentalement, lorsque vous voulez couronner une reine, vous devez connaître la bonne étiquette à utiliser à chaque étape, innerHTML cale la couronne à son visage.

Utilisez des méthodes DOM standard telles que appendChild, insertBefore ou importNode.

Évitez également d'utiliser responseText, XHTML n'est pas du texte, c'est du XML et vous devriez vous en tenir à utiliser à la place responseXML. Lorsque vous effectuez ces modifications, vous pouvez travailler avec du contenu chargé AJAX comme si AJAX n'était pas impliqué pour commencer.

Questions connexes