|
|
|
| Собственно, на сайте форма авторизации открывается через thickbox - вызывается отдельный php файл.
Нужно сделать, чтобы становилось активным поле ввода логина.
Если для input вставить onmouseover="document.forms.sdloginform.loginusername.focus();" - то при наведении указателя поле становится активным для ввода.
Однако же если в конце этого вызываемого файла вставить
<script language="JavaScript">
<!--
document.sdloginform.loginusername.focus();
//-->
</script>
То при вызове окошка вылезет ошибка яваскрипта - элемент не найден.
Что можно с этим сделать ? Позарез как нужно. Может быть иной вариант есть ? | |
|
|
|
|
|
|
|
для: Richard Ferlow
(05.05.2008 в 20:49)
| | Нашел вот такое нечто, только не знаю как этим воспользоваться.
http://www.gerd-riesselmann.net/development/focus-first-form-field-with-jquery
// Focus first element
$.fn.focus_first = function() {
var elem = $('input:visible', this).get(0);
var select = $('select:visible', this).get(0);
if (select && elem) {
if (select.offsetTop < elem.offsetTop) {
elem = select;
}
}
var textarea = $('textarea:visible', this).get(0);
if (textarea && elem) {
if (textarea.offsetTop < elem.offsetTop) {
elem = textarea;
}
}
if (elem) {
elem.focus();
}
return this;
}
Use it like this:
$(window).load(function() {
$('form').focus_first();
);
I wonder, though, if there is a more comprehensive expression to find the first element of either type "input", "select", or "textarea".
$('input:visible,select:visible,textarea:visible', this).eq(0)
|
| |
|
|
|
|
|
|
|
для: Richard Ferlow
(05.05.2008 в 20:49)
| | <body onload="document.sdloginform.loginusername.focus();">
а остальное выбросить, если нужен фокус при загрузке страницы. | |
|
|
|
|
|
|
|
для: sim5
(06.05.2008 в 04:12)
| | Так, к сожалению, никак не работает. Не видит элемент.
Поле ввода в данамическом окне подгружается | |
|
|
|
|
|
|
|
для: Richard Ferlow
(06.05.2008 в 09:16)
| | Хотите сказать, что это неработает?:
<html>
<head>
</head>
<body onload="document.sdloginform.loginusername.focus();">
<form action="" name="sdloginform" id="sdloginform">
<input type="text" name="loginusername">
</form>
</body>
</html>
|
Это все должно быть прописано в подгружаемом файле, включая вызов - <body onload="document.sdloginform.loginusername.focus();"> | |
|
|
|
|
|
|
|
для: sim5
(06.05.2008 в 09:20)
| | Да, именно так и пробовал уже.
И через getelementbyid тоже.
Без jquery окна работает, в нем - никак. | |
|
|
|
|
|
|
|
для: Richard Ferlow
(06.05.2008 в 09:21)
| | Ну не знаю, у меня все работает. | |
|
|
|
|
|
|
|
для: sim5
(06.05.2008 в 09:36)
| | Может где-то в интернете можно увидеть Ваш пример, может быть я что-то упускаю ? | |
|
|
|
|
|
|
|
для: Richard Ferlow
(06.05.2008 в 17:23)
| | Вот пример загружаемого в окно файла:
1.html
<html>
<head>
</head>
<body onload="document.sdloginform.loginusername.focus();">
<form action="" name="sdloginform" id="sdloginform">
<input type="text" name="loginusername">
</form>
</body>
</html>
|
А это файл из которого вызываем окно:
<html>
<head>
</head>
<body>
<script>
window.open('1.html','','')
</script>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: sim5
(06.05.2008 в 17:30)
| | Тут ведь новое окно браузера открывается. В нем будет конечно работать.
Я же про библиотеку говорю - thickbox - тут поверх содержимого через iframe загружается содержимое стороннего файла. Вот в нем то и не удается фокус установить. | |
|
|
|
|
|
|
|
для: Richard Ferlow
(06.05.2008 в 17:58)
| | Ну тогда надо саму библиотеку смотреть (у меня она есть, но я ее еще не разу так и не подключал, не пробовал). Получается, что загруженный документ теряет фокус. А что вы загружаете в это окно, каково содержимое? | |
|
|
|
|
|
|
|
для: sim5
(07.05.2008 в 05:59)
| | php скрипт - он html формирует.
Пока оставил - onmouseover - это работает. | |
|
|
|