我写了一个更改特定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"/>';?>
我如何专注于该文本框?
答案 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一样。