2012-01-25 28 views
6

Tôi có hai danh sách MultiSelect (AllProductList và SelectedProductList), AllProductList chứa tất cả các sản phẩm cho một danh mục cụ thể và tôi thêm/clone tùy chọn từ AllProductList vào SelectedProductList bằng cách sử dụng JQuery.Có cách nào để đăng tất cả các giá trị trong danh sách chọn nhiều không và chỉ các giá trị được chọn?

Tôi rõ ràng chỉ muốn đăng các giá trị trong SelectedProductList và không phân biệt liệu chúng có được chọn hay không.

Tôi đã gói các thẻ biểu mẫu quanh SelectedProductList chỉ và bây giờ cần một số cách để đăng tất cả các giá trị tùy chọn trong đó, bất kể có được chọn hay không.

+4

Chọn tất cả lập trình trước khi nộp hồ sơ. – Leonid

+0

Vâng, điều đó nghe có vẻ hợp lý và phức tạp hơn rất nhiều – LaserBeak

Trả lời

2

bạn có thể viết một số javascript điền vào một phần tử biểu mẫu ẩn với tất cả các giá trị từ lựa chọn, một cái gì đó như dưới đây và trên máy chủ chỉ sử dụng phát nổ (",", $ _ POST ["allValues"]) tùy chọn

<script> 
var hiddenValues = ""; 
$(document).ready(function(){ 
    $("#mySelect option").each(function(){ 
     hiddenValues = $(this).val() + ","; 
    })//end each 

    $("#myForm").append("<input type='hidden' name='allValues' value='"+hiddenValues+"'>") 
}) 
</script> 

rõ ràng, bên trên có một sự phụ thuộc vào jQuery và hình thức của bạn có một id của myForm và multiselect của bạn có một id của mySelect :)

EDIT:
Note1: rằng điều này chỉ tiết kiệm các giá trị của các tùy chọn và không phải là nhãn từ lựa chọn (một phương thức tương tự có thể được sử dụng để lưu các giá trị đó cũng). chỉ ghi nhớ điều này

NOTE2: hãy cẩn thận nếu các giá trị chứa bất kỳ dấu phẩy, vì điều này sẽ làm mất hiệu lực đầu vào của bạn (nếu không trốn thoát một cách, hoặc nếu không sử dụng một số delimiter khác)

+0

Tôi đã thay đổi # myChọn tùy chọn thành #myChọn tùy chọn và nó hoạt động cho tôi. cảm ơn :) – Parag

+0

bạn nói đúng, đó phải là "tùy chọn", tôi sẽ thêm nó vào câu trả lời của tôi – Bogdan

1

Tôi không thể bình luận , vì vậy tôi đoán tôi phải đặt một câu trả lời ???

Bogdan của nhu cầu câu trả lời + =

hiddenValues += $(this).val() + ","; 

nếu không bạn chỉ nhận được 1 ...

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