2013-03-04 2 views
2

У меня есть страница jsp/html. К этой странице можно получить доступ из двух разных ссылок. Это страница Menu1 -> demo.html и из Menu2 -> demo.html (в моем случае его jsp) На странице demo.html у меня есть текстовое поле, которое по умолчанию отключено.Функция фокуса javascript не работает как ожидалось

<input class="mytextinputtextField" type="text" id="countryOfOrigin" 
readonly style="background-color:#DCDCDC" /> 

Теперь, когда страница demo.html доступна из menu2, я проверяю его, используя скрытый параметр и снова позволяет текстовое поле и настройки фокуса на текстовом поле.

if(document.getElementById("submenu_name").value=="PM") 
{ 
    document.getElementById("countryOfOrigin").focus(); 
} 

Поле разрешено, и курсор отображается, но если я набираю текст, не печатается в текстовом поле. Мне нужно щелкнуть по текстовому полю, чтобы ввести текст. Я думаю, что это связано с отключением и снова включением поля. Пожалуйста, может кто-нибудь помочь мне, чтобы иметь возможность вводить текстовое поле в событии фокуса из javascript. Я не пользуюсь JQuery и браузером является I.E 6

+0

Как вы можете добавить свое текстовое поле? – leaf

+0

document.getElementById ("countryOfOrigin"). ReadOnly = false; –

+0

Это один из тех атрибутов, который есть, или нет, поскольку он становится «свойством» элемента. попробуйте 'readonly =" fred "', и вы видите, он по-прежнему доступен только для чтения :), поскольку это «присутствие» свойства, которое управляет его функциональностью. –

ответ

-1

Это неофициальное решение, мы должны использовать функцию setTimeout(), чтобы задержать время срабатывания focus().

setTimeout(function() { document.getElementById('myInput').focus(); }, 10); 

См http://www.mkyong.com/javascript/focus-is-not-working-in-ie-solution/

+0

. Я пробовал это, но не работал. Его то же самое устанавливает фокус, но когда я печатаю его, он не набирается. –

+0

Используйте элемент.disabled вместо readOnly. И если он не работает, не отключите ввод, но размывайте поле onfocus, если вы хотите, чтобы вход был включен. – JoDev

+3

Помните, что 'disabled' ведет себя не так, как' readonly': [здесь] (http://stackoverflow.com/questions/7730695/whats-the-difference-between-disabled-disabled-and-readonly- readonly-for-te) – leaf

0

Попробуйте это:

document.getElementById("countryOfOrigin").removeAttribute('readOnly'); 

JQuery версии:

jQuery('#countryOfOrigin').removeAttr('readOnly'); 
+0

пробовал это, но не работал ... –

0

вы пробовали удаление атрибута?

document.getElementById("countryOfOrigin").Attributes.Remove("readonly"); 

или

document.getElementById("countryOfOrigin").removeAttribute("readonly"); 
0

Спасибо за вашу помощь. Я нашел решение или могу сказать, что он работает. Я вставляю код, который может быть полезен для других

if(document.getElementById("submenu_name").value=="PM") 
{ 
document.getElementById("countryOfOrigin").focus(); 
document.getElementById("countryOfOrigin").select(); 

} 
Смежные вопросы