2011-07-28 28 views
1

我寫了一個ajax頁面,它將更改特定的div內容。在這個Ajax代碼將創建一個文本框。 現在我想在調用該函數後專注於該文本框。在點擊一個按鈕的功能將得到稱爲專注於由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(); 

} 

對Ajax的production.php 的代碼只是

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

我如何可以專注於文本框?

回答

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

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

添加對焦您可以將焦點設置文本框..

1

的innerHTML後,您可以使用這種由.focus()

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

這是不是在得到一票 - 投票? – Sarath

0

不要使用innerHTML,這是一個不可靠的Microsoft私有方法而NO則僅僅是因爲有人認爲將其添加到HTML5規範中並不會使其合法使用。

問題是,innerHTML的作品剛好足以讓你認爲它正在工作。在寫模式下使用它時,它基本上只會拋出您指定的HTML,但它不會正確註冊節點。所以基本上,當你想冠上一個女王時,你需要知道每一步都要使用哪種禮儀,innerHTML會把王冠夾在她的臉上。

使用標準的DOM方法,如appendChild,insertBefore或importNode。

也避免使用responseText,XHTML不是文本,它是XML,你應該堅持使用responseXML來代替。當您進行這些更改時,您將可以使用AJAX加載的內容,就像AJAX不參與開始一樣。