сосредоточиться на текстовое поле, созданное ajax - PullRequest
1 голос
/ 28 июля 2011

Я написал страницу ajax, которая изменит конкретное содержимое div.В этом коде 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 ]

3 голосов
/ 28 июля 2011
if (xmlhttp.readyState==4 && xmlhttp.status==200){

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

этим вы можете установить фокус на текстовое поле ..

1 голос
/ 28 июля 2011

После innerHtml вы можете добавить фокус на .focus()

 document.getElementById("aa433").innerHTML=xmlhttp.responseText;
 document.getElementById("barcode").focus();
0 голосов
/ 04 ноября 2011

Не используйте innerHTML, это ненадежный проприетарный метод Microsoft и НЕТ только потому, что кто-то думал, что добавить его в спецификацию HTML5 НЕ делает его законным для использования.

Проблема в том, что innerHTML работает достаточночтобы заставить вас думать, что это работает.При использовании его в режиме записи он, по сути, просто генерирует HTML-код в указанном вами месте, хотя он не правильно регистрирует узлы.Поэтому, в основном, если вы хотите короновать королеву, вам нужно знать правильный этикет, который будет использоваться на каждом этапе, innerHTML проверяет корону на ее лице.

Используйте стандартные методы DOM, такие как appendChild, insertBefore или importNode.

Также избегайте использования responseText, XHTML - это не текст, а XML, и вы должны использовать вместо него responseXML.Когда вы внесете эти изменения, вы сможете работать с загруженным контентом AJAX, как если бы AJAX изначально не участвовал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...