Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача фокуса на кнопку, Javascript 
V
    Опции темы
V13
Дата 26.9.2007, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 5.9.2007

Репутация: нет
Всего: 1



Помогите пожалуиста, объясните как передать фокус на кнопку!

Ситуация такова: на форме есть много кнопок и много окон, как при попадании курсора в одно определенное окно передавать фокус определеннои кнопке? Уже посмотрел много примеров, но почему-то все не выходит у меня никак.  smile
Или вместо .focus() что-то другое нужно использовать???  
PM MAIL   Вверх
solenko
Дата 26.9.2007, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 9
Всего: 67



Здается мне, что не в focus() дело smile
Код

<script>
function foo(el){
        var button_id = el.getAttribute('button');
        document.getElementById(button_id).focus();
}
</script>
<div button="button1" style="width: 200px; height: 200px; border: solid black 1px;" onmouseover="foo(this);">
<button id="button1">Button 1</button>
</div>
<div button="button2" style="width: 200px; height: 200px; border: solid black 1px;" onmouseover="foo(this);">
<button id="button2">Button 1</button>
</div>



--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
V13
Дата 27.9.2007, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 5.9.2007

Репутация: нет
Всего: 1



Спасибо но немножко не то, мне нужно, чтобы если курсор попадал в техтовое поле, то фокус передовался кнопке, а текстовое поле находится в непосредственнои близости от кнопки. Нужно что-то другое искать. 
PM MAIL   Вверх
dsCode
Дата 27.9.2007, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



V13, в событии onFocus у поля передавайте фокус кнопке. 


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
V13
Дата 27.9.2007, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 5.9.2007

Репутация: нет
Всего: 1



Цитата(dsCode @ 27.9.2007,  12:03)
V13, в событии onFocus у поля передавайте фокус кнопке.

Сделал как Вы сказали, почему-то теперь не могу редактировать текст в поле
Код

        function pokus(){

        document.getElementById('load').focus();
}

<form action="" method="post" id="form" onsubmit="return false">
    <div id="text"><input type="text" name="text" value="" onfocus="pokus();"/>
    </div><br />

    <div id="loaddiv">
    <input type="button" id="load" value="<?php echo $mark;?>" onclick="loadData(this.form);"/>
    </div><br />
 

Это сообщение отредактировал(а) V13 - 27.9.2007, 12:28
PM MAIL   Вверх
dsCode
Дата 27.9.2007, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



V13, 
Цитата(V13 @  27.9.2007,  11:30 Найти цитируемый пост)
мне нужно, чтобы если курсор попадал в техтовое поле, то фокус передовался кнопке

как-то мало стыкуется с:
Цитата(V13 @  27.9.2007,  12:27 Найти цитируемый пост)
почему-то теперь не могу редактировать текст в поле




--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
V13
Дата 27.9.2007, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 5.9.2007

Репутация: нет
Всего: 1



Ой не в поле, а в окне. В текстовом окне!!! smile  
PM MAIL   Вверх
dsCode
Дата 27.9.2007, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



V13, 
Цитата(V13 @  27.9.2007,  12:51 Найти цитируемый пост)
В текстовом окне!!!

это кто? Textarea? Если да - то ее (текстарию) ждет та же учесть. Если нет - то поясните подробней, что такое "текстовое окно".


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
V13
Дата 27.9.2007, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 5.9.2007

Репутация: нет
Всего: 1



Извините. Вот: 
Код

input type="text" name="text"


Я сделал на событие 
Код

onmouseover


PM MAIL   Вверх
dsCode
Дата 27.9.2007, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



V13, ну это текстовое поле. А что с событием onmouseover? Когда мышка проходит над текстовым полем - кнопка получает фокус? А какой смысл? Потом, если текстовое поле получит фокус - с кнопки он все равно снимется.


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
V13
Дата 27.9.2007, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 5.9.2007

Репутация: нет
Всего: 1



Да вы совершенно правы, теперь мне нужно отловить нажатие клавиши Enter в текстовом поле. Чтобы при ее нажатии выполнялся нужный скрипт. И получим полный набор!



Это сообщение отредактировал(а) V13 - 27.9.2007, 14:15
PM MAIL   Вверх
dsCode
Дата 27.9.2007, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



V13, 
Цитата(V13 @  27.9.2007,  14:13 Найти цитируемый пост)
теперь мне нужно отловить нажатие клавиши Enter в текстовом поле. Чтобы при ее нажатии выполнялся нужный скрипт


Код

<script type="text/javascript">
function initElementEvents() {
  document.getElementById('t').onkeydown = function(e) {
    e = e || window.event;
    if (e.keyCode == 13) {
      test();
    }
    return true;
  };
}

function test() {
  alert(1);
  document.getElementById('b').focus();
}
</script>
<body onLoad="initElementEvents(); return true;">
  <input type="text" id="t" />
  <input type="button" id="b" value="Button" />
</body>




--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
V13
Дата 27.9.2007, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 5.9.2007

Репутация: нет
Всего: 1



Спасибо, но я где-то ошибку сделал, почему-то не срабатывает
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
    <title>JavaScript und HTTP</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<script src="prototype-1.5.0.js" type="text/javascript"></script>
</head>
<body onLoad="initElementEvents(); return true;">

    <script type="text/javascript">
    function reportError(){
        Alert('Fehler');
    }


    
    function pokus(){

        document.getElementById('load').focus();
}

    function initElementEvents() {
    document.getElementById('text').onkeydown = function(e) {
    e = e || window.event;
    if (e.keyCode == 13) {
      loadData(f);
    }
    return true;
    };
    }
    
    
    
    function loadData(f)
    {
        suchbegriff=f.text.value;
        locale='<?php echo $locale;?>';
        divid='ergebnis';
        var myAjax = new Ajax.Updater(
            divid,
            'ajax_suchen.php',
            {
                method: 'post',
                parameters: 'name='+suchbegriff+'&locale='+locale,
                onFailure: reportError
            }
        );
        
    }
    

    </script>

<form action="" method="post" id="form" onsubmit="return false">
    <div id="text"><input type="text" name="text" value="" onmouseover="pokus();"/>
    </div><br />

    <div id="loaddiv">
    <input type="button" id="load" value="<?php echo $mark;?>" onclick="loadData(this.form);"/>
    </div><br />
    

    
    <div id="ergebnis"/></div>
    </div>
</form>

</body>
</html>
 

Это сообщение отредактировал(а) V13 - 27.9.2007, 15:06
PM MAIL   Вверх
V13
Дата 27.9.2007, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 5.9.2007

Репутация: нет
Всего: 1



Firebug написал:

f has no properties





Это сообщение отредактировал(а) V13 - 27.9.2007, 15:40
PM MAIL   Вверх
dsCode
Дата 27.9.2007, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



V13, ну так конечно, в коде Вы вызываете функцию loadData с несуществующей для функции document.getElementById('text').onkeydown переменной f:

if (e.keyCode == 13) {
  loadData(f);
}


если это id формы (или объект формы), тогда из этого места надо вызывать полным путем:

if (e.keyCode == 13) {
  loadData(document.getElementById('form'));
}




--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0541 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.