2011-07-28 3 views
1

특정 div 콘텐츠를 변경하는 아약스 페이지를 작성했습니다. Ajax 코드는 텍스트 상자를 생성합니다. 이제이 함수를 호출 한 후 해당 텍스트 상자에 집중하려고합니다. 버튼을 클릭의 기능이 아약스 - production.php 코드에아약스가 만든 텍스트 상자에 중점을 두어

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"/>';?> 

입니까?

답변

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

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

하여 포커스를 추가 할 수 있습니다 HTML5 사양에 추가하려는 사람이 합법적으로 사용하지 않기 때문에 NO는 사용할 수 없습니다.

innerHTML은 제대로 작동한다고 생각할 수 있도록 문제가 있습니다. 쓰기 모드에서 사용할 때 노드를 올바르게 등록하지 않아도 지정한 위치에 HTML을 던집니다. 그래서 기본적으로 여왕에게 왕관을 쓰고 싶을 때 매 단계마다 적절한 에티켓을 알아야합니다. innerHTML은 왕관을 그녀의 얼굴에 꽂습니다.

appendChild, insertBefore 또는 importNode와 같은 표준 DOM 메서드를 사용하십시오.

responseText 사용을 피하십시오. XHTML은 텍스트가 아니므로 XML이고 대신 responseXML을 사용해야합니다. 이러한 변경 작업을 수행하면 AJAX가로드되지 않은 것처럼 AJAX가로드 된 컨텐츠로 작업 할 수 있습니다.

1

innerHTML을 한 후에는

+0

Whits는 투표에서이 점을 잘못 알고 있습니까? – Sarath

0
는 innerHTML을 사용하지 마십시오, 그것은 신뢰할 수없는 Microsoft 독자적인 방법이다

.. 당신이 텍스트 상자에 포커스를 설정할 수 있습니다 이것에 의해 .focus()

document.getElementById("aa433").innerHTML=xmlhttp.responseText; 
document.getElementById("barcode").focus(); 
관련 문제