У меня есть текстовое поле, на которое я хочу установить фокус, но он не работает.Функция Javascript Focus() не работает
document.getElementById("txtCity").focus();
Любая идея?
У меня есть текстовое поле, на которое я хочу установить фокус, но он не работает.Функция Javascript Focus() не работает
document.getElementById("txtCity").focus();
Любая идея?
Возможно, вы вызываете JavaScript до того, как визуализируется элемент ввода? Поместите элемент ввода перед JavaScript или дождитесь загрузки страницы до запуска JavaScript.
В таком порядке, он работает просто отлично:
<input type="text" id="test" />
<script type="text/javascript">
document.getElementById("test").focus();
</script>
В jQuery вы можете разместить свой код в методе .ready()
выполнить код первого, когда DOM полностью загружен:
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#test").focus();
// document.getElementById("test").focus();
});
</script>
Он отлично работает в этом примере http://jsfiddle.net/lmcculley/rYfvQ/
Попробуйте обернуть его в документ r и убедитесь, что у вас включен jquery.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script>
$(document).ready(function() {
$("#test").focus();
});
</script>
<div id="txtROSComments" contenteditable="true" onkeyup="SentenceCase(this, event)"style="border: 1px solid black; height: 200px; width: 200px;">
</div>
<script type="text/javascript">
function SentenceCase(inField, e) {
debugger;
var charCode;
if (e && e.which) {
charCode = e.which;
} else if (window.event) {
e = window.event;
charCode = e.keyCode;
}
if (charCode == 190) {
format();
}
}
function format() {
debugger; ;
var result = document.getElementById('txtROSComments').innerHTML.split(".");
var finaltxt = "";
var toformat = result[result.length - 2];
result[0] = result[0].substring(0, 1).toUpperCase() + result[0].slice(1);
if (toformat[0] != " ") {
for (var i = 0; i < result.length - 1; i++) {
finaltxt += result[i] + ".";
}
document.getElementById('txtROSComments').innerHTML = finaltxt;
alert(finaltxt);
abc();
return finaltxt;
}
if (toformat[0].toString() == " ") {
debugger;
var upped = toformat.substring(1, 2).toUpperCase();
var formatted = " " + upped + toformat.slice(2);
for (var i = 0; i < result.length - 1; i++) {
if (i == (result.length - 2)) {
finaltxt += formatted + ".";
}
else {
finaltxt += result[i] + ".";
}
}
}
else {
debugger;
var upped = toformat.substring(0, 1).toUpperCase();
var formatted = " " + upped + toformat.slice(1);
for (var i = 0; i < result.length - 1; i++) {
if (i == (result.length - 2)) {
finaltxt += formatted + ".";
}
else {
//if(i
finaltxt += result[i] + ".";
}
}
}
debugger;
document.getElementById('txtROSComments').value = finaltxt;
return finaltxt;
}
</script>
<script type="text/javascript">
function abc() {
document.getElementById("#txtROSComments").focus();
}
Замечательно иметь некоторый код, но было бы здорово, если бы вы могли добавить немного объяснений. –
Я не уверен, как найти ответ на вопрос в этом коде. –
Я также столкнулся же problem.To решить эту проблему, поместите свой код в функции SetTimeout.
function showMeOnClick() {
// Set text filed focus after some delay
setTimeout(function() { jQuery('#searchTF').focus() }, 20);
// Do your work.....
}
Выполнение этого с тайм-аутом просто быстро и грязно – Unknown
Да, добавление тайм-аута - это всего лишь обходное решение, потому что нам нужно следующее событие типа tick, чтобы перерисовать DOM, чтобы показать изменения. Мы можем выбрать другой подход к решению этой проблемы :-) –
Я решил это, применив прослушиватель анимации для анимации созданного объекта (потому что мой объект появляется с анимацией). Таким образом, он становится центром внимания, когда он должен быть. – Unknown
Как выглядит HTML-код для текстового поля? –
Является 'document.getElementById (" txtCity ")' return 'undefined'? Любые ошибки JavaScript в консоли? Какой браузер? Является ли элемент действительно сосредоточенным? ** Показать больше кода. ** –
Использование IE8. На странице нет ошибок. –