2012-01-12 1 views
7

ситуации я борюсь с, что есть несколько форм на странице, которая выглядит как это (hiddenId отличается в каждой форме):Как отправить форму без идентификатора формы и не отправить ID, но известную скрытую ценность?

<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 желаемого значения? Спасибо за помощь!

+1

Почему вы не можете дать формы классу или идентификатору? – binnyb

+0

имя устарело, вы должны использовать id. никогда не используйте один и тот же идентификатор для нескольких элементов. –

ответ

7

Что-то вдоль этих линий вы должны получить начало:

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(); 
+0

... или вы можете просто использовать свойство 'form' ... – Neil

+0

@Neil - Да, это может быть немного лучше :) Отредактировано. –

+0

Большое спасибо, оба решения работают отлично! * Примечание для таких манекенов, как я: код должен быть в конце страницы. * –

2

Доступ ко всем формам с использованием var allForms = document.forms;

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

0

Вы можете добавить id к форме и su Кнопка bmit:

<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(); 
} 
+1

* IF * оригинальный плакат использовал (или хотел использовать) jQuery, да. –

+0

OP не использует jQuery. –

+0

Оригинальный плакат заявил «Как мне отправить с помощью javascript», поэтому я принял этот подход. –

6

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

элементы работают точно так же:

document.forms[0].elements[0].value т.д.

Вы можете перебрать, пока не имеют значение, а затем представить текущую форму:

document.forms[x].submit() 
1

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

Смежные вопросы