2012-01-12 33 views
7

tình hình tôi đang phải vật lộn với là có nhiều hình thức trên trang đó trông như thế này (hiddenId là khác nhau ở mỗi hình thức):Tôi làm cách nào để gửi biểu mẫu không có ID biểu mẫu và không có ID gửi nhưng giá trị ẩn đã biết?

<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> 

Làm thế nào để tôi gửi với javascript (tôi không tâm sử dụng jQuery) một hình thức cụ thể bao gồm hiddenId của một giá trị mong muốn? Cảm ơn sự giúp đỡ của bạn!

+1

tại sao bạn không thể cung cấp biểu mẫu cho một lớp hoặc id? Tên – binnyb

+0

không còn được dùng nữa, bạn nên sử dụng id. không bao giờ sử dụng cùng một id cho nhiều hơn một phần tử. –

Trả lời

7

cái gì đó dọc những dòng này sẽ giúp bạn bắt đầu:

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

Nếu bạn có thể sử dụng jQuery:

$("input[type='hidden'][value='something']").closest("form").submit(); 
+0

... hoặc bạn chỉ có thể sử dụng thuộc tính 'form' của nó ... – Neil

+0

@Neil - Vâng, có thể tốt hơn một chút :) Đã chỉnh sửa. –

+0

Cảm ơn bạn rất nhiều, cả hai giải pháp đều hoạt động hoàn hảo! * Lưu ý cho các núm vú giả như tôi: mã phải ở cuối trang. * –

2

Truy cập tất cả các hình thức sử dụng var allForms = document.forms;

vòng qua chúng khi cần thiết để đầu vào truy cập

0

Bạn có thể thêm id vào biểu mẫu và su nút 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> 

Sau đó sử dụng jQuery để gửi biểu mẫu:

$("#submit1").click(function() { 
    form1.submit(); 
} 
$("#submit2").click(function() { 
    form2.submit(); 
} 
+1

* NẾU * áp phích ban đầu đang sử dụng (hoặc muốn sử dụng) jQuery, vâng. –

+0

OP không sử dụng jQuery. –

+0

Áp phích gốc đã nêu "Làm cách nào để gửi bằng javascript", đó là lý do tại sao tôi thực hiện phương pháp này. –

6

document.form là một mảng. document.forms[0] là trang đầu tiên.

Elements làm việc cùng một cách:

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

Bạn có thể lặp qua cho đến khi bạn có giá trị sau đó gửi biểu mẫu hiện tại:

document.forms[x].submit() 
1

Bạn có thể sử dụng document.querySelector hoặc một trong các các thư viện JavaScript khác nhau mô phỏng nó trên các trình duyệt cũ hơn để tìm phần tử đầu vào bị ẩn, sau đó sử dụng thuộc tính form để truy cập biểu mẫu và gọi phương thức submit.

Các vấn đề liên quan