2010-05-07 25 views
7

Tôi muốn nút gửi của tôi được đặt ở đâu đó bên ngoài phần tử biểu mẫu của tôi không? Tôi có lựa chọn nào không? Ngoại trừ jquery.nút gửi phải được chứa trong biểu mẫu

Cảm ơn, rodchar

+0

Khi bạn nói jQuery, bạn cũng có nghĩa là javascript? –

+0

Nếu bạn có thể làm điều đó, hành vi của các trang có nhiều biểu mẫu sẽ như thế nào? –

+0

Vì '

' có thể lấy toàn bộ trang, bạn có hỏi vì bạn có nhiều biểu mẫu trên trang không? – egrunin

Trả lời

1

Đây là tình huống phổ biến. Tôi nghĩ rằng điều này sẽ làm điều đó (chưa thử nghiệm nó):

<form id="form1" action="someAction.cgi" method="GET"> 
    <!-- other fields go here --> 
</form> 
<form id="form2" action="someOtherAction.cgi" method="GET"> 
    <!-- other fields go here --> 
</form> 

<form> 
    <input value="Form One" type="button" 
     onclick="document.getElementById('form1').submit();"/> 
    <input value="Form Two" type="button" 
     onclick="document.getElementById('form2').submit();"/> 
</form> 

Tôi không chắc chắn rằng bạn cần điều cuối cùng <form>. Tôi dường như nhớ các trình duyệt bỏ qua các sự kiện nếu nút không ở trong một số form.

4

Một cách tiếp cận này chỉ đơn thuần là để thiết lập form attribute vào nút:

<form id="first"> 
    <input type="submit" form="second" value="Submit Second" /> 
</form> 
<form id="second"> 
    <input type="submit" form="first" value="Submit First" /> 
</form> 

Fiddle: http://jsfiddle.net/52wgc2ym/


gốc trả lời

Hành vi tự nhiên của nút gửi là gửi biểu mẫu gần nhất lên hệ thống phân cấp của nó. Cách duy nhất khác để có được một nút để gửi một biểu mẫu mà nó không cư trú trong là sử dụng JavaScript (đó là những gì jQuery là, về cơ bản).

Nếu cần, bạn có thể đặt lại vị trí nút gửi sao cho nó xuất hiện như thể nó không ở dạng trực quan khi trang được hiển thị. Bạn sẽ làm điều này bằng cách sử dụng CSS, có thể cho kết quả mong muốn.

+0

+1 cho CSS, tôi không nghĩ về điều đó. –

+0

"javascript (đó là những gì jQuery là, về cơ bản)" ...hmmm –

+0

jQuery .... IS ...... JavaScript :) – user1360809

4

Nút gửi cần phải ở bên trong biểu mẫu, có.

Có vẻ lạ với tôi khi muốn nó theo bất kỳ cách nào khác. Điều gì sẽ là điểm nếu các điều khiển nhập liệu ở một nơi trên trang và nút gửi là waaay ở đó ở một nơi khác?

2

Đầu vào loại submit chỉ có ý nghĩa là trẻ em của các yếu tố <form>. Nhưng bằng cách sử dụng CSS tôi chắc chắn rằng bạn có thể định vị nó ở bất cứ đâu bạn thích. Hãy nhớ rằng các phần tử biểu mẫu là "vô hình", do đó, chỉ cần mở rộng các thẻ xung quanh nội dung của bạn nhiều hơn và bạn được bảo vệ. Đây là the documentation on forms for HTML4, nó vẫn thích hợp.

2

Có, nút gửi cấu trúc cần phải ở bên trong phần tử biểu mẫu cho tài liệu là X/HTML hợp lệ. Nhưng trực quan bạn có thể đặt nút gửi bất cứ nơi nào bạn muốn với CSS thích hợp (float, tuyệt đối/tương đối định vị, vv). Bạn cũng có thể viết JavaScript sẽ kích hoạt việc gửi biểu mẫu và buộc nó vào một phần tử khác.

0

Đây là một loại câu trả lời nhận được cái nhìn rõ ràng hơn từ câu trả lời egrunin

<form id="form1" name="form1" action="someAction.cgi" method="GET"> 
     <!-- other fields go here --> 
    </form> 
    <form id="form2" name="form2" action="someOtherAction.cgi" method="GET"> 
     <!-- other fields go here --> 
    </form> 

    Calling by form id: 
    <form> 
     <input value="Form One" type="button" 
      onclick="document.getElementById('form1').submit();"/> 
     <input value="Form Two" type="button" 
      onclick="document.getElementById('form2').submit();"/> 
    </form> 

or Calling by form name: 

    <form> 
     <input value="Form One" type="button" 
      onclick="document.form1.submit();"/> 
     <input value="Form Two" type="button" 
      onclick="document.form2.submit();"/> 
    </form> 
Các vấn đề liên quan