2011-07-28 12 views
1

特定のdivコンテンツを変更するajaxページを書きました。その中で、ajaxコードはテキストボックスを作成します。 この関数を呼び出した後で、そのテキストボックスに注目したいと思います。関数は、AJAX-production.php 上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(); 

} 

として呼び出されますボタンをクリックすると上のコードでは、私はそのテキストボックスに集中することができますどのようにちょうど

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

のですか?あなたは、テキストボックスにフォーカスを設定することができ、このことにより、.focus()

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

答えて

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

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

によってフォーカスを追加することができますinnerHTMLの後

1

..

+0

Whtsはこれを投票するのに間違っていますか? – Sarath

0

innerHTMLプロパティを使用しないでください、それが信頼できないMicrosoft独自の方法です誰かがHTML5仕様に追加しようと思っているため、正当なものではありません。

問題は、innerHTMLが機能していると思うようになってしまうことです。書き込みモードで使用すると、ノードを正しく登録しなくても、指定した場所にHTMLがスローされます。だから、基本的に女王様を戴冠させたいときには、一歩一歩ずつ使用する適切なエチケットを知っておく必要があります。innerHTMLは王冠を彼女の顔に差し込みます。

標準のDOMメソッド(appendChild、insertBefore、importNodeなど)を使用します。

また、responseTextの使用を避けてください.XHTMLはテキストではありません.XMLであり、代わりにresponseXMLを使用してください。これらの変更を行うと、AJAXが読み込まれたコンテンツをAJAXが最初から巻き込まれていないかのように扱うことができます。

関連する問題