Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   Отправка определенной формы (https://javascript.ru/forum/css-html-browser/42389-otpravka-opredelennojj-formy.html)

roza 24.10.2013 11:39

Отправка определенной формы
 
имеется вот такая страница с тремя формами

<form method="get" action="">
<input type="hidden" name="cmd" value="getUserArmy" />
<input type="hidden" name="usb" value="4" />
<input type="hidden" name="show" value="2" />
<input class="submit" style="width: 100px" type="submit" value="Заказать" name="creat4" /> <input class="submit" style="width: 40px" type="text" value="14" name="how" /> / 14 <input type="hidden" name="uid" value="849589B8-8B93-44E4-940E-AE014E3BF0AE" />
</form>
<form method="get" action="">
<input type="hidden" name="cmd" value="getUserArmy" />
<input type="hidden" name="usb" value="5" />
<input type="hidden" name="show" value="2" />
<input class="submit" style="width: 100px" type="submit" value="Заказать" name="creat5" /> <input class="submit" style="width: 40px" type="text" value="10" name="how" /> / 10 <input type="hidden" name="uid" value="849589B8-8B93-44E4-940E-AE014E3BF0AE" />
</form>
<form method="get" action="">
<input type="hidden" name="cmd" value="getUserArmy" />
<input type="hidden" name="usb" value="6" />
<input type="hidden" name="show" value="2" />
<input class="submit" style="width: 100px" type="submit" value="Заказать" name="creat6" /> <input class="submit" style="width: 40px" type="text" value="14" name="how" /> / 14 <input type="hidden" name="uid" value="849589B8-8B93-44E4-940E-AE014E3BF0AE" />
</form>


формы уже заполнены,подскажите как правильно отправить любую(одну) из них из js скрипта
document.forms.submit();
не работает
document.getElementById("creat5").submit();
тоже не работает
что я упустила из виду?

ksa 24.10.2013 13:57

Цитата:

Сообщение от roza
document.forms.submit();
не работает

Потому как forms это "коллекция" форм...

Укажи индекс нужной формы и будет тебе счастие. ;)

Цитата:

Сообщение от roza
document.getElementById("creat5").submit();
тоже не работает

Потому как у тебя нет элементов с таким ИД...

Присвой формам ИД и будет тебе счастие. ;)

roza 24.10.2013 17:30

спасибо за подсказку,но я не знаю откуда брать эти индексы,кроме варианта заново перезаполнить все (уже заполненные)формы с приданием нужных индексов.Это слишком сложное решение,т.к. я всего лишь 3 формы написала,в реале их гораздо больше.
у каждой присланной формы есть готовая кнопка отправки

<input class="submit" style="width: 100px" type="submit" value="Заказать" name="creat4" />


отличаютя они всего лишь именем name="creat4","creat5",...,"creat1000"

подскажите есть возможность отправлять при помощи имени кнопки
тупо используя клик на эту форму

и как это будет работать,если внутри добавится чекбокс например:

</form>
<form method="get" action="">
<input type="hidden" name="cmd" value="getUserArmy" />
<input type="hidden" name="usb" value="6" />
<input type="hidden" name="show" value="2" />
<input type="checkbox" name="bbb"> бронь
<input type="checkbox" name="aaa"> выкуп
<input class="submit" style="width: 100px" type="submit" value="Заказать" name="creat6" /> <input class="submit" style="width: 40px" type="text" value="14" name="how" /> / 14 <input type="hidden" name="uid" value="849589B8-8B93-44E4-940E-AE014E3BF0AE" />
</form>


// ==UserScript==
// @name           My Script
// @description    A brief description of your script
// @author         Your Name
// @include        [url]http://*[/url]
// @version        1.0
// ==/UserScript==
document.getElementsByName('aaa')[0].checked =true;
document.getElementsByName('how')[0].value =14;
document.forms[0].submit()


заполняется всё,но не отправляется на сайт,где ошибка?

roza 24.10.2013 19:21

помогите дописать

roza 24.10.2013 22:10

// ==UserScript==
// @name           My Script
// @description    A brief description of your script
// @author         Your Name
// @include        [url]http://*[/url]
// @version        1.0
// ==/UserScript==
document.getElementsByName('aaa')[0].checked =true;
document.getElementsByName('how')[0].value =14;
setTimeout(function() {document.getElementsByName("creat6")[0].submit()},2000);

не получается отправлять форму,весь интернет перерыла,не пойму что мешает отправке

roza 24.10.2013 23:18

ksa,
А как присвоить формам ид через userscript?

roza 25.10.2013 03:29

document.forms[0].submit()
всё таки отправляет форму самую первую,вот только результат в командной строке отличается.Не хватает creat6 и Заказать
получается:
/?cmd=getUserArmy&usb=4&show=2&how=14&uid=849589B8-8B93-44E4-940E-AE014E3BF0AE
А должно быть(при нажатии Enter или мыши)
/?cmd=getUserArmy&usb=4&show=2&creat4=Заказа ь&how=14&uid=849589B8-8B93-44E4-940E-AE014E3BF0AE

кто нибудь знает верное решение?Тут наверняка используется name submit,только я не пойму где я ошибаюсь

roza 27.10.2013 18:32

document.getElementsByName('aaa')[0].checked = true;
setTimeout(function(){document.getElementsByName(' name')[0].click()},2000);
вот так вот работает

danik.js 27.10.2013 19:02

Цитата:

Сообщение от roza
document.getElementsByName('how')[0].value =14;

Не 'how', а 'show'. Как можно быть такой растяпой?

roza 27.10.2013 22:06

Цитата:

Сообщение от danik.js (Сообщение 278333)
Не 'how', а 'show'. Как можно быть такой растяпой?

как раз таки у меня всё правильно написано для заполнения формы,это вы невнимательно посмотрели на hidden там действительно есть show,но в данном случае оно не требуется.

Хотя вы правы я динозавр в программировании,но невнимательностью не страдаю и пусть я несколько дней потратила на решение простенькой задачки,зато самостоятельно.


Часовой пояс GMT +3, время: 17:37.