专注于ajax创建的文本框

时间:2011-07-28 10:14:49

标签: php javascript 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 个答案:

答案 0 :(得分:3)

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

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

通过这个你可以将焦点设置在文本框上..

答案 1 :(得分:1)

在innerHtml之后,您可以按.focus()

添加焦点
 document.getElementById("aa433").innerHTML=xmlhttp.responseText;
 document.getElementById("barcode").focus();

答案 2 :(得分:0)

不要使用innerHTML,它是一种不可靠的Microsoft专有方法,并且只是因为有人认为将其添加到HTML5规范中并不能使其合法使用。

问题在于innerHTML的工作原理足以让你认为它正在发挥作用。在写模式下使用它时,它实际上只会抛出您指定的HTML,尽管它没有正确注册节点。因此,基本上当你想要为女王加冕时,你需要知道在每一步都要使用的礼仪,内心的HTML会把冠冕砸在她的脸上。

使用标准DOM方法,例如appendChild,insertBefore或importNode。

同时避免使用responseText,XHTML不是文本,它是XML,你应该坚持使用responseXML。当您进行这些更改时,您将能够使用加载了AJAX的内容,就像开始时不涉及AJAX一样。