2010-02-28 32 views
5

Làm cách nào tôi có thể thực hiện các thao tác sau bằng jQuery: Mở cửa sổ bật lên trả về giá trị cho cửa sổ cha khi một liên kết trong cửa sổ con được nhấp, đóng cửa sổ con và sau đó có phụ huynh tự động gửi biểu mẫu dựa trên giá trị được trả về?Giá trị trả về của cửa sổ bật lên jQuery cho phụ huynh

Tôi nhận ra rằng Hộp thoại jQuery là một giải pháp phổ biến, nhưng tôi yêu cầu cửa sổ bật lên vì nội dung của cửa sổ cần phải điều hướng và tôi muốn tránh sử dụng khung nội tuyến trong Hộp thoại jQuery.

Cửa sổ bật lên sẽ được sử dụng để thu thập nhiều giá trị, cuối cùng sẽ được trả về dưới dạng chuỗi được phân cách cho cha mẹ, nhưng cần thu thập dữ liệu này trước khi gửi biểu mẫu của cửa sổ mẹ. Nếu có một mẫu thiết kế chuẩn cho "Bộ chọn đối tượng", thì đây sẽ là mẫu thiết kế.

này cần phải làm việc trong IE8, FF3.6, Safari 4 và Chrome 5.

Cảm ơn, Đánh dấu

+0

Tại sao bạn sẽ cần nội dung của cửa sổ điều hướng? Điều đó không có ý nghĩa - nếu bạn muốn có cửa sổ bật lên cho biểu mẫu của một trang, tại sao hãy để người dùng điều hướng đến một nơi khác? –

+0

Vì cửa sổ popup sẽ được sử dụng để thu thập nhiều hơn một giá trị, cuối cùng sẽ được trả về dưới dạng một chuỗi được phân tách cho cha mẹ, nhưng việc thu thập dữ liệu này cần phải xảy ra trước khi gửi biểu mẫu của cửa sổ chính. Nếu có một mẫu thiết kế chuẩn cho "Bộ chọn đối tượng", thì đây sẽ là mẫu thiết kế. –

Trả lời

6

Đây là giải pháp của tôi:

var parent = $(parent.document.body); 
$(parent).find('input#valStore').val(theVal); 
$(parent).find('form#myForm').submit(); 
window.close(); 
6

Trong cửa sổ trình duyệt mới mở của bạn, bạn có thể thử một cái gì đó giống như

$("#mylink").click(function(){ 
     value = /* get some value */ 
     window.opener.$("#myform .somehiddenfield").val(value); 
     window.opener.$("#myform").submit(); 
     window.close(); 
}); 

KHUYẾN CÁO: Tôi chưa thử nghiệm điều này trong bất kỳ trình duyệt nào.

+0

Cảm ơn bạn đã trả lời, nhưng "nhận được một số giá trị" là một chút mơ hồ với tôi. Điều gì sẽ xảy ra nếu giá trị đó đến từ trạng thái phiên của ứng dụng? Làm thế nào tôi sẽ gán nó trong ví dụ của bạn? –

+0

Sau đó, bạn sẽ hiển thị nó như sau: value = '<% = Session ["mykey"]%>'. Nhưng nếu giá trị đến từ trạng thái phiên, tại sao bạn cần truyền nó giữa các cửa sổ? Tôi đã mong đợi rằng bạn sẽ nhận được nó từ một số lĩnh vực đầu vào (textbox) trong cửa sổ con. Sau đó, nó sẽ là giá trị = $ ('input.sometextbox'). Val(); – Rune

+0

Tôi đã chỉnh sửa câu hỏi ban đầu của mình để làm rõ. Cửa sổ bật lên được sử dụng để duyệt qua hệ thống để thu thập các tham chiếu thực thể khác nhau và sau đó chuyển chúng lại cho cha mẹ dưới dạng một chuỗi được phân tách. Bạn có thể nghĩ về điều này tương tự như một giỏ mua hàng, nơi các mục đã chọn được lưu trữ trong trạng thái phiên. –

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