2013-02-19 29 views
14

Tôi có một trang có nhiều biểu mẫu và người dùng sẽ chọn thứ gì đó trên trang đó. Khi người dùng thực hiện, tôi cần đặt yếu tố đó ở nơi khác, giống như một giỏ hàng thực sự. Nhưng tôi dường như không thể có được nhiều hơn hình thức đầu tiên trên trang để thực sự hoạt động như dự định. Tôi đã thử nhiều điều:Làm cách nào để kiểm tra với jQuery nếu có bất kỳ biểu mẫu nào được gửi?

  1. Cho mọi hình thức cùng một ID, mà chỉ gây ra các hình thức đầu tiên để hoạt động như tôi muốn, đem lại cho tôi những dữ liệu hình thức đó.
  2. Cung cấp cho chúng tất cả cùng một ID một lần nữa, lần này gắn một số nhận dạng duy nhất vào ID, nhưng tất nhiên, khi đó jQuery $('#something') của tôi không bắt được nó vì nó không khớp.

Vì vậy, tôi đang suy nghĩ cách tôi sẽ thực hiện việc này. Tôi chỉ cần nhận dữ liệu từ biểu mẫu đã gửi trên trang. Và như đã đề cập, tôi có thể cung cấp cho họ tất cả tiền tố của một số loại, như tôi có bây giờ, nhưng sau đó tôi không biết làm thế nào để phù hợp với nó.

Trợ giúp sẽ được đánh giá rất cao!

Một số mã như yêu cầu (chỉ là ví dụ để hiển thị những gì tôi có nghĩa là, tất nhiên):

HTML:

<form id="something-0"><input type="hidden" value="0"><input type="submit"></form> 
<form id="something-1"><input type="hidden" value="1"><input type="submit"></form> 

Các jQuery:

$("#something-%").submit(function(e) { 
e.preventDefault(); 
$("#some-span").html(data); 
}); 

tôi muốn # một cái gì đó-% chấp nhận bất cứ điều gì đến sau "-", tôi hy vọng bạn hiểu.

+1

Vui lòng hiển thị một số mã. – Wez

+1

Chúng ta có thể lấy một ví dụ fiddle không? – dibs

+0

mã sẽ được đánh giá rất cao – PlantTheIdea

Trả lời

23

Như một câu trả lời chung, để phân loại nhóm phần tử, hãy sử dụng thuộc tính class, cho mỗi phần tử cùng tên lớp. Sau đó, bạn có thể chọn các phần tử theo lớp đó. Một phần tử có thể có nhiều hơn một lớp.

$(".something"); 

Nếu bạn phải sử dụng id, bạn có thể sử dụng một bộ chọn thuộc tính:

$("[id^='something']"); // all elements with an id beginning with 'something' 
$("[id$='something']"); // all elements with an id ending with 'something' 

Đối với câu hỏi cụ thể này, vì bạn muốn hoạt động trên bất kỳ hình thức bên trong trang, sự lựa chọn đơn giản nhất sẽ được sử dụng tên nguyên tố chọn:

$("form"); 

Bất kể chọn, bạn có thể xác định hình thức đã được gửi bằng cách tham khảo this trong submit() h andler:

$("form").submit(function (e) { 
    e.preventDefault(); 
    var formId = this.id; // "this" is a reference to the submitted form 
}); 
+0

Tuyệt vời, điều này làm việc HOÀN THÀNH !! Cảm ơn! – Lozzano

6

Bạn có thể nắm bắt tất cả biểu mẫu bằng cách sử dụng biểu mẫu của công cụ chọn, ví dụ:

$("form").submit(function() { 
    var theForm = $(this); 
    var formID = theForm.attr("id"); 
    // do something 
}); 
+0

Bạn quên trích dẫn? '$ (" form ")' – gilly3

+0

Chắc chắn rồi! Rất tiếc! – devrooms