Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/72: Рейтинг темы: голосов - 72, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 76

Инициировать нажатие кнопки формы

25.03.2009, 09:21. Показов 15414. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите,как инициировать нажатие определенной кнопки на странице, не нажимая ее непосредственно.

Спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.03.2009, 09:21
Ответы с готовыми решениями:

Как инициировать нажатие на link программно из другого окна?
как инициировать нажатие на link <A HREF='..asp' TARGET='right'><A> програмно из другого окна

Автокликер (заполнение формы + нажатие кнопки)
Нужно сделать простой автокликер, то есть при нажатии на иконку расширения открывается, например, поисковик "ya.ru", следует ввод...

На экране расположены текст и две кнопки с надписями "красный" и "зеленый". Нажатие на эти кнопки приводит к соответствующему изменению цвета текста.
На экране расположены текст и две кнопки с надписями "красный" и "зеленый". Нажатие на эти кнопки приводит к соответствующему изменению...

30
0 / 0 / 0
Регистрация: 14.03.2008
Сообщений: 39
25.03.2009, 10:24
[button_id].click();

где button_id - идентификатор нужного тэга

Кстати, так можно кликнуть не только по кнопке, но по любому объекту на странице

Удачи
0
0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 76
25.03.2009, 11:38  [ТС]
Спасибо за совет!
Только не совсем получается.Идея такая: кликаю по ссылке,которая активирует функцию,где прописано как раз id_1.click.До этого присваиваю кнопке id='id_1'.Но возникает ошибка, что 'id_1' не определено.

Как быть? Заранее спасибо.
0
Maksim
25.03.2009, 12:36
Пример покажи...
0 / 0 / 0
Регистрация: 14.03.2008
Сообщений: 39
25.03.2009, 13:10
Тогда так:

document.getElementById('id_1').click();

Действительно, обращение к элементу напрямую не всегда работает, но через getElementById ВСЕГДА, если только id элемента уникален
0
0 / 0 / 0
Регистрация: 14.03.2008
Сообщений: 39
25.03.2009, 13:14
Кстати, а как ты присваиваешь id кнопке? Непосредственно заданием атрибута в тэге или программно?

Действительно, покажи код (сам тэг button и место, где программно кликаешь)
0
0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 76
25.03.2009, 15:15  [ТС]
ID присваиваю в атрибуте.Вот есть две формы (2 голосовалки):

<form action='http://voter.land.ru/view.php?pl=22129' method='post'>
<input type='hidden' name='action' value='vote'>
//вопрос и варианты ответов
<input type='submit' id='bt' value='Голосовать'>//сама кнопка
</form>

<form action='http://voter.land.ru/view.php?pl=22131' method='post'>
<input type='hidden' name='action' value='vote'>
//вопрос и варианты ответов
<input type='submit' value='Голосовать'>//сама кнопка
</form>

Есть скрипт:

<SCRIPT LANGUAGE='JavaScript'>
function dater()
{
document.getElementById('bt').click();
}
</SCRIPT>

И есть линк,который запускает функцию:
<p><A HREF='#' onClick='dater()'>LINK

Вот хотелось бы,чтобы пользователь ответил на 2 вопроса нажатием одной кнопки (ссылки) и данные этих форм отправились по соответствующим адресам для учета.

Спасибо за понимание!
0
0 / 0 / 0
Регистрация: 14.03.2008
Сообщений: 39
25.03.2009, 16:42
Так бы сразу и сказал! ))

Не запуская скрипта скажу со 100% уверенностью, что броузер ругается не на на элемент с id='bt', а на неизвестный метод dater()

Вставь в скрипт вне тела функции указатель на эту функцию, например так:
Code
1
2
3
4
dater = dater_fun;
function dater_fun()
...
далее по тексту
И вызывай эту функцию через определенный указатель, т.е. как dater()

Надеюсь, понятно объяснил

Удачи
0
0 / 0 / 0
Регистрация: 14.03.2008
Сообщений: 39
25.03.2009, 17:08
А вообще-то в таких случаях нужно не нажатие кнопки имитировать, а просто делать сабмит

form1.submit();
form2.submit();

Хотя сабмит двух форм сразу это тоже левое решение. На какую страницу должно перекинуть юзера после этого: на результаты первого опроса или второго? Или как фишка ляжет?
0
Maksim
25.03.2009, 17:36
Ну можно же делать submit форм в отдельные фреймы, или вообще в новые окна, в которых выводить сообщение благодарности, или что-то еще, а через несколько секунд окно закрывать...

А вообще, меня тоже давно интересует вопрос, можно ли делать submit форм в никуда, то есть не открывать никакое окно, однако посылать данные на сервер...
Пока, кроме использования скрытых фреймов или использования объектов типа XMLHttpRequest, я ни до чего не додумался...
0 / 0 / 0
Регистрация: 14.03.2008
Сообщений: 39
25.03.2009, 18:23
>> Ну можно же делать submit форм в отдельные фреймы, или вообще в новые окна, в которых выводить сообщение благодарности, или что-то еще, а через несколько секунд окно закрывать...

Только так и придется, иначе один из запросов скорее всего просто не обработается

Но открывать более одного попап-окна - слишком лажово выглядит.
Для более наглядного примера: что если челу надо таким образом сабмитить не 2 формы, а 10? 10 попап-окон даже для порносайта слишком )

>> можно ли делать submit форм в никуда, то есть не открывать никакое окно, однако посылать данные на сервер...
Пока, кроме использования скрытых фреймов или использования объектов типа XMLHttpRequest, я ни до чего не додумался...

Насчет сабмитить не пробовал, а вот вызвать обработчик на сервере без перезагрузки страницы можно весьма незатейливым способом: создать невидимый объект IMG, у которого по нужному событию изменить src на требуемый URL, параметры передаются через GET. Как сделать то же самое через POST пока не знаю.
Ради справедливости замечу, что эта идея придумана не мною

Кстати, возьмите на заметку, иначе когда-нибудь придется не один час безуспешно раскидывать мозгами: если у объекта IMG не указан src, то браузер в качестве src грузит дефолтную страницу. В итоге на сайтах с поддержкой сессий или основанных на XML могут творится невообразимые вещи.
0
Maksim
25.03.2009, 18:38
Вообще, если чел сабмитит десять форм пользуясь системами голосований типа http://voter.land.ru, то это больной чел...

Уж можно как-то обойтись сабмитом одной единственной формы...
Если уж очень надо, можно на сервере рассортировать результаты сабмита одной большой формы, и сделать десять сабмитов из серверного скрипта, пощадив клиента...

Тем не менее, скрытые iframes проблему тоже решают...

По поводу рисунков, скриптов, и других элементов с querystring в добавление к source я знаю... Вопрос все-таки в том, как сделать POST...
Пока известные решения - только IFRAME и Msxml2.XMLHTTP....
0 / 0 / 0
Регистрация: 14.03.2008
Сообщений: 39
25.03.2009, 18:58
Поностью согласен, именно поэтому и написал, что сабмитить несколько форм одновременно - это лажа.

По поводу сабмита в никуда видимо единственно правильное решение через XMLHTTP, т.к. скрытые фреймы - это все та же лажа.

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

Вот и приходится извращаться
0
Maksim
25.03.2009, 19:05
скрытый IFRAME лучше использовать из-за проблем совместимости браузеров, будь она неладна...

А извращаться приходится вовсе не по вине разработчиков http...

Это создатели браузеров могли бы предусмотреть возможность иметь 'нулевое' окно... К примеру делать формы с TARGET=NULL, VOID или что-то подобное... Идея понятна, я думаю...
0 / 0 / 0
Регистрация: 14.03.2008
Сообщений: 39
26.03.2009, 10:53
Если один из разработчиков браузера добавит такую фичу, а остальные нет, то это только добавит тебе головной боли

Вообще-то по хорошему браузер должен уметь грамотно работать с общепринятыми спецификациями (HTML, XML, CSS и т. п.) и не добавлять никаких приблуд, равно как и не сокращать их.

Так что, тогда уж добавлять TARGET=NULL для формы нужно в спецификацию HTML, хотя кому вообще сейчас это интересно развивать HTML...
0
Maksim
26.03.2009, 11:33
HTML это язык разметки для БРАУЗЕРА...
Если в сецификацию HTML добавить изменение, браузеры это изменение поддерживать не начнут....
0 / 0 / 0
Регистрация: 14.03.2008
Сообщений: 39
26.03.2009, 18:44
вообще-то это и ежу понятно

я имел в виду другое: все должно строиться на основе спецификаций, будет спецификация - будет поддержка

а развитие HTML никому не нужно, т.к. есть задачи поинтересней, возможностей отображения документа и так выше крыши, а интерфейсные приблуды в HTML - это анахронизм, их заменят готовые программные компоненты (что это будет COM-объект или что-то еще не суть важно)

документ должен представляться в виде XML, а HTML использоваться только для отображения (и то это приемлимое решение только для статичных документов, для интерактивности следует использовать готовые стандартизированные компоненты)
0
Archy
18.04.2009, 22:32
Хочу программно нажимать кнопку отправки формы (submit), но что-то не выходит ( использую методы имя_кнопки.click() или имя_кнопки.submit() )
0 / 0 / 0
Регистрация: 14.03.2008
Сообщений: 39
19.04.2009, 11:03
>> Хочу программно нажимать кнопку отправки формы (submit), но что-то не выходит ( использую методы имя_кнопки.click() или имя_кнопки.submit() )

Либо кнопка должна иметь тип submit, либо имя_формы.submit() (второе правильней)
0
Archy
22.04.2009, 20:42
Большое спасибо! имя_формы.submit() работает.
Интересно как быть с простой кнопкой, выводящей какое-либо сообщение
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.04.2009, 20:42
Помогаю со студенческими работами здесь

Условие нажатие кнопки
Как написать условие нажатие кнопки мыши в скрипте, то есть так: Если нажат левая кнопка мыши, то ... Мне надо чтобы, если нажата кнопка,...

Нажатие кнопки на сайте
Вообщем, есть сайт, на котором каждые 30 секунд крутится рулетка, и мне надо, чтобы на 5 секунде нажималась одна кнопка. Я уже все...

Автоматическое нажатие кнопки
Здравствуйте! незнаю в эту ветку задал вопрос или нет! Ситуация такая, есть скрипт(макрос) который начиная работать заходит на сайт и на...

Нажатие кнопки на стороннем сайте
Приветствую, можно ли написать скрипт, который каждую минуту нажимает на кнопку стороннего сайта? Поясняю: запускаю свой html файл, нажимаю...

Нажатие кнопки в браузере Chrome
Всем, добрый день. Занимаюсь разработкой под Андроид и понадобилось сделать вставку Javascript. Мне необходимо нажать на кнопку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru