0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 76
|
|
1 | |
Инициировать нажатие кнопки формы25.03.2009, 09:21. Показов 14119. Ответов 30
Метки нет Все метки)
(
Подскажите,как инициировать нажатие определенной кнопки на странице, не нажимая ее непосредственно.
Спасибо!
0
|
|
25.03.2009, 09:21 | |
Ответы с готовыми решениями:
30
Как инициировать нажатие на link программно из другого окна? Автокликер (заполнение формы + нажатие кнопки) На экране расположены текст и две кнопки с надписями "красный" и "зеленый". Нажатие на эти кнопки приводит к соответствующему изменению цвета текста. Условие нажатие кнопки |
0 / 0 / 0
Регистрация: 14.03.2008
Сообщений: 39
|
|
25.03.2009, 10:24 | 2 |
[button_id].click();
где button_id - идентификатор нужного тэга Кстати, так можно кликнуть не только по кнопке, но по любому объекту на странице Удачи
0
|
0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 76
|
|
25.03.2009, 11:38 [ТС] | 3 |
Спасибо за совет!
Только не совсем получается.Идея такая: кликаю по ссылке,которая активирует функцию,где прописано как раз id_1.click.До этого присваиваю кнопке id='id_1'.Но возникает ошибка, что 'id_1' не определено. Как быть? Заранее спасибо.
0
|
Maksim
|
|
25.03.2009, 12:36 | 4 |
Пример покажи...
|
0 / 0 / 0
Регистрация: 14.03.2008
Сообщений: 39
|
|
25.03.2009, 13:10 | 5 |
Тогда так:
document.getElementById('id_1').click(); Действительно, обращение к элементу напрямую не всегда работает, но через getElementById ВСЕГДА, если только id элемента уникален
0
|
0 / 0 / 0
Регистрация: 14.03.2008
Сообщений: 39
|
|
25.03.2009, 13:14 | 6 |
Кстати, а как ты присваиваешь id кнопке? Непосредственно заданием атрибута в тэге или программно?
Действительно, покажи код (сам тэг button и место, где программно кликаешь)
0
|
0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 76
|
|
25.03.2009, 15:15 [ТС] | 7 |
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 | 8 |
Так бы сразу и сказал!
![]() Не запуская скрипта скажу со 100% уверенностью, что броузер ругается не на на элемент с id='bt', а на неизвестный метод dater() Вставь в скрипт вне тела функции указатель на эту функцию, например так: Код
dater = dater_fun; function dater_fun() ... далее по тексту Надеюсь, понятно объяснил Удачи
0
|
0 / 0 / 0
Регистрация: 14.03.2008
Сообщений: 39
|
|
25.03.2009, 17:08 | 9 |
А вообще-то в таких случаях нужно не нажатие кнопки имитировать, а просто делать сабмит
form1.submit(); form2.submit(); Хотя сабмит двух форм сразу это тоже левое решение. На какую страницу должно перекинуть юзера после этого: на результаты первого опроса или второго? Или как фишка ляжет? ![]()
0
|
Maksim
|
|
25.03.2009, 17:36 | 10 |
Ну можно же делать submit форм в отдельные фреймы, или вообще в новые окна, в которых выводить сообщение благодарности, или что-то еще, а через несколько секунд окно закрывать...
А вообще, меня тоже давно интересует вопрос, можно ли делать submit форм в никуда, то есть не открывать никакое окно, однако посылать данные на сервер... Пока, кроме использования скрытых фреймов или использования объектов типа XMLHttpRequest, я ни до чего не додумался... |
0 / 0 / 0
Регистрация: 14.03.2008
Сообщений: 39
|
|
25.03.2009, 18:23 | 11 |
>> Ну можно же делать submit форм в отдельные фреймы, или вообще в новые окна, в которых выводить сообщение благодарности, или что-то еще, а через несколько секунд окно закрывать...
Только так и придется, иначе один из запросов скорее всего просто не обработается Но открывать более одного попап-окна - слишком лажово выглядит. Для более наглядного примера: что если челу надо таким образом сабмитить не 2 формы, а 10? 10 попап-окон даже для порносайта слишком ![]() >> можно ли делать submit форм в никуда, то есть не открывать никакое окно, однако посылать данные на сервер... Пока, кроме использования скрытых фреймов или использования объектов типа XMLHttpRequest, я ни до чего не додумался... Насчет сабмитить не пробовал, а вот вызвать обработчик на сервере без перезагрузки страницы можно весьма незатейливым способом: создать невидимый объект IMG, у которого по нужному событию изменить src на требуемый URL, параметры передаются через GET. Как сделать то же самое через POST пока не знаю. Ради справедливости замечу, что эта идея придумана не мною ![]() Кстати, возьмите на заметку, иначе когда-нибудь придется не один час безуспешно раскидывать мозгами: если у объекта IMG не указан src, то браузер в качестве src грузит дефолтную страницу. В итоге на сайтах с поддержкой сессий или основанных на XML могут творится невообразимые вещи.
0
|
Maksim
|
|
25.03.2009, 18:38 | 12 |
Вообще, если чел сабмитит десять форм пользуясь системами голосований типа http://voter.land.ru, то это больной чел...
Уж можно как-то обойтись сабмитом одной единственной формы... Если уж очень надо, можно на сервере рассортировать результаты сабмита одной большой формы, и сделать десять сабмитов из серверного скрипта, пощадив клиента... Тем не менее, скрытые iframes проблему тоже решают... По поводу рисунков, скриптов, и других элементов с querystring в добавление к source я знаю... Вопрос все-таки в том, как сделать POST... Пока известные решения - только IFRAME и Msxml2.XMLHTTP.... |
0 / 0 / 0
Регистрация: 14.03.2008
Сообщений: 39
|
|
25.03.2009, 18:58 | 13 |
Поностью согласен, именно поэтому и написал, что сабмитить несколько форм одновременно - это лажа.
По поводу сабмита в никуда видимо единственно правильное решение через XMLHTTP, т.к. скрытые фреймы - это все та же лажа. Думаю, что поскольку форма задумывалась как средство общения между клиентом и сервером, разработчикам протокола http в голову не пришло, что клиент захочет только послать данные без получения подтверждения. Вот и приходится извращаться ![]()
0
|
Maksim
|
|
25.03.2009, 19:05 | 14 |
скрытый IFRAME лучше использовать из-за проблем совместимости браузеров, будь она неладна...
А извращаться приходится вовсе не по вине разработчиков http... Это создатели браузеров могли бы предусмотреть возможность иметь 'нулевое' окно... К примеру делать формы с TARGET=NULL, VOID или что-то подобное... Идея понятна, я думаю... |
0 / 0 / 0
Регистрация: 14.03.2008
Сообщений: 39
|
|
26.03.2009, 10:53 | 15 |
Если один из разработчиков браузера добавит такую фичу, а остальные нет, то это только добавит тебе головной боли
![]() Вообще-то по хорошему браузер должен уметь грамотно работать с общепринятыми спецификациями (HTML, XML, CSS и т. п.) и не добавлять никаких приблуд, равно как и не сокращать их. Так что, тогда уж добавлять TARGET=NULL для формы нужно в спецификацию HTML, хотя кому вообще сейчас это интересно развивать HTML...
0
|
Maksim
|
|
26.03.2009, 11:33 | 16 |
HTML это язык разметки для БРАУЗЕРА...
Если в сецификацию HTML добавить изменение, браузеры это изменение поддерживать не начнут.... |
0 / 0 / 0
Регистрация: 14.03.2008
Сообщений: 39
|
|
26.03.2009, 18:44 | 17 |
вообще-то это и ежу понятно
я имел в виду другое: все должно строиться на основе спецификаций, будет спецификация - будет поддержка а развитие HTML никому не нужно, т.к. есть задачи поинтересней, возможностей отображения документа и так выше крыши, а интерфейсные приблуды в HTML - это анахронизм, их заменят готовые программные компоненты (что это будет COM-объект или что-то еще не суть важно) документ должен представляться в виде XML, а HTML использоваться только для отображения (и то это приемлимое решение только для статичных документов, для интерактивности следует использовать готовые стандартизированные компоненты)
0
|
Archy
|
|
18.04.2009, 22:32 | 18 |
Хочу программно нажимать кнопку отправки формы (submit), но что-то не выходит ( использую методы имя_кнопки.click() или имя_кнопки.submit() )
|
0 / 0 / 0
Регистрация: 14.03.2008
Сообщений: 39
|
|
19.04.2009, 11:03 | 19 |
>> Хочу программно нажимать кнопку отправки формы (submit), но что-то не выходит ( использую методы имя_кнопки.click() или имя_кнопки.submit() )
Либо кнопка должна иметь тип submit, либо имя_формы.submit() (второе правильней)
0
|
Archy
|
|
22.04.2009, 20:42 | 20 |
Большое спасибо! имя_формы.submit() работает.
Интересно как быть с простой кнопкой, выводящей какое-либо сообщение |
22.04.2009, 20:42 | |
Помогаю со студенческими работами здесь
20
Нажатие кнопки на сайте Автоматическое нажатие кнопки Нажатие кнопки на стороннем сайте Нажатие кнопки в браузере Chrome Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |