2012-01-12 58 views
7

我與掙扎的情況是,有一些看起來像這樣在頁面上更多形式(該hiddenId不同的是在每個表格):如何提交沒有表單ID且沒有提交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

爲什麼你不能給表單一個類或ID? – binnyb 2012-01-12 21:40:23

+0

名稱已被棄用,您應該使用ID。從不使用相同的ID爲多個元素。 – 2012-01-12 21:44:49

回答

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 2012-01-12 21:45:04

+0

@尼爾 - 是的,那可能會更好一點:)編輯。 – 2012-01-12 21:46:32

+0

非常感謝,兩種解決方案都能完美運作! *注意像我這樣的傻瓜:代碼必須在頁面的末尾* – 2012-01-12 22:19:40

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

*如果*原始海報正在使用(或想使用)jQuery,是的。 – 2012-01-12 21:44:11

+0

OP不使用jQuery。 – 2012-01-12 21:45:28

+0

原來的海報聲明「我如何使用javascript提交」這就是爲什麼我採用這種方法。 – 2012-01-12 21:47:17

6

document.forms是一個數組。 document.forms[0]是第一個。

元素相同的方式工作:

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

可以遍歷,直到你有值,則提交當前形式:

document.forms[x].submit() 
1

你可以使用document.querySelector或一個在舊版瀏覽器上模擬它的各種JavaScript庫以查找隱藏的輸入元素,然後使用其form屬性訪問表單並調用submit方法。