Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Фокус не передаеться


Автор: DEER 13.7.2005, 14:13
Короче передаю фокус между элементами на фрейме, но нужно чтобы он не выходил за пределы этого фрейма, как это сделать разобрался на последнем элементе поставил
Код

<input type="submit" value="Дальше" onblur="getElementById('FirstElement').focus()" />


Вот если этот FirstElement есть кнопка или поле ввода, то всё работает хорошо,
проблема возникла из-а того что этот фокус надо передавать кнопке, которую я нарисовал сам
Код

      <noscript>
        <input type="button" onclick=rep("new.jsp") value="Новый"/>
      </noscript>
      <script>
        button("rep(\'new.jsp\');", "FirstElement", "Новый", "new");
      </script>

функция button
Код

function button(onclick, id, alt, image)
{
    document.write(
//alert(
    "<a href='#' onclick=\""+onclick+"\">"+
    "<img border=\"0\" alt=\""+alt+"\" "+
        "id=\""+id+"\" "+
        "src=\""+image+"A.gif\" "+
        "onmouseover=\"FP_swapImg(1,0,\'"+id+"\',\'"+image+"B.gif\')\"  "+
        "onmouseout= \"FP_swapImg(0,0,\'"+id+"\',\'"+image+"A.gif\')\"  "+
        "onmousedown=\"FP_swapImg(1,0,\'"+id+"\',\'"+image+"C.gif\')\"  "+
        "onmouseup=  \"FP_swapImg(0,0,\'"+id+"\',\'"+image+"B.gif\')\")>"+
    "</a>");
}


то есть генерируется рисованная кнопка с ID=FirstElement,
И когда я нажимаю Ефи на последнем элементе фокус, почему то уходит из фрейма в строку броузера...
Вопрос: как передать фокус этой нарисованной кнопке???

smile smile

Автор: Aliance 13.7.2005, 14:28
Неправельно юзаешь getElementById. Она исполняется в контексте Объекта Document.
Код

<input type="submit" value="Дальше" onblur="document.getElementById('FirstElement').focus()" />

http://www.jsguide.spb.ru/reference/w3c/document/getElementById.php
Добавлено @ 14:31
Кроме того ты пытаешься передать фокус картинки, разве это возможно?

Автор: DEER 13.7.2005, 14:34
не помогает smile
я так пробовал раньше
Добавлено @ 14:38
по ходу возможно, так как используя товю подсказку изhttp://forum.vingrad.ru/index.php?showtopic=58322
получилось передать фокус нужному фрейму, и нажимая на Таб фокус переходит на картинку,
не получается передать при помощи
Код

document.getElementById('FirstElement').focus()

он похоже по id её не находит
Добавлено @ 14:42
даже если написать
Код

alert(document.getElementById('FirstElement'))

возвращается не null, а [object], значит сам объект он находит...

Автор: Aliance 13.7.2005, 15:04
Значит находит.
Событие focus() у картинки есть, если http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/events/onfocus.asp MSDN.
Добавлено @ 15:06
А теперь объясни мне: почему кнопки типа submit и почему действия выполняются при событии onblur?
Нужно так:
Код

<input type="button" value="Дальше" onclick="document.getElementById('FirstElement').focus()" />

Автор: DEER 13.7.2005, 15:14
не мне не важно какой тип у элемента из которого переходит фокус, т.е не при нажатии на кнопку а при нажатии на Tab, в момент когда фокус находиться на этом элементе
а событие onBlur
Цитата
Fires when the object loses the input focus.

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

Автор: DEER 13.7.2005, 16:47
УРЯЯЯЯЯЯЯЯЯЯЯ!!!!!!! разобрался!!!
Короче так, кнопка нарисованная окружена ссылкой и в
Код

<input type="submit" value="Дальше" onblur="document.getElementById('FirstElement').focus()" />

надо передавать ID не картинки, а ссылки! Так работает! smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)