Как отправить форму без идентификатора формы и идентификатора отправки, но с известным скрытым значением? - PullRequest
7 голосов
/ 13 января 2012

Я сталкиваюсь с ситуацией, когда на странице больше форм, которые выглядят так (скрытый идентификатор отличается в каждой форме):

<form method="post">
<input type="hidden" name="hiddenId" value="111222">
<input type="submit" value="Proceed">
</form>

<form method="post">
<input type="hidden" name="hiddenId" value="111333">
<input type="submit" value="Proceed">
</form>

Как отправить с помощью javascript (я не против использования jQuery) специальную форму, которая включает hiddenId желаемого значения? Спасибо за вашу помощь!

Ответы [ 5 ]

7 голосов
/ 13 января 2012

Что-то вроде этого должно помочь вам начать:

var inputs = document.getElementsByTagName("input");
for(var i = 0; i < inputs.length; i++) {
    if(inputs[i].type === "hidden" && inputs[i].value === "111333") {
        inputs[i].form.submit();
    } 
}

Если вы можете использовать jQuery:

$("input[type='hidden'][value='something']").closest("form").submit();
6 голосов
/ 13 января 2012

document.forms - это массив. document.forms[0] является первым.

Элементы работают одинаково:

document.forms[0].elements[0].value и т. Д.

Вы можете перейти к циклу, пока не получите значение, а затем отправить текущую форму:

document.forms[x].submit()
2 голосов
/ 13 января 2012

Получите доступ ко всем формам, используя var allForms = document.forms;

, проходя через них по мере необходимости для доступа к входам

1 голос
/ 13 января 2012

Вы можете использовать document.querySelector или одну из различных библиотек JavaScript, которые эмулируют его в старых браузерах, чтобы найти скрытый элемент ввода, а затем использовать его свойство form для доступа к форме и вызова submit метод.

0 голосов
/ 13 января 2012

Вы можете добавить идентификатор в форму и отправить кнопку:

<form method="post" id="form1">
<input type="hidden" name="hiddenId" value="111222">
<input type="submit" value="Proceed" id="submit1">
</form>

<form method="post" id="form2">
<input type="hidden" name="hiddenId" value="111333">
<input type="submit" value="Proceed" id="submit2">
</form>

Затем используйте jQuery для отправки формы:

$("#submit1").click(function() {
    form1.submit();
}
$("#submit2").click(function() {
    form2.submit();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...