2012-02-07 11 views
20

Xin chào Tôi có biểu mẫu html mà tôi đang gửi qua sự kiện nhấp chuột vào nút. Sự kiện cháy $ ("# myform"). Submit(); vấn đề là có một hộp kiểm trên biểu mẫu và trong firebug theo params được đăng nó cho thấy "mycheckbox1 trên" thay vì sau đó dự kiến ​​"mycheckbox1 true".Giá trị của bộ kiểm tra gửi biểu mẫu thành "bật" thay vì "đúng"

khi gửi biểu mẫu qua ajax Tôi có thể đặt dữ liệu được đăng không có vấn đề nhưng biểu mẫu này có tệp tải lên yêu cầu một trong số các hack khác nhau để làm cho nó hoạt động. Người mà tôi đang sử dụng cuối cùng là gửi cuộc gọi. nhưng có lẽ điều đó không liên quan.

Trong mọi trường hợp khi dữ liệu đến máy chủ, máy chủ không thấy giá trị "bật" dưới dạng bool và do đó bỏ qua nó.

Mọi thông tin chi tiết sẽ được đánh giá cao.

+2

giá trị gì vào hộp kiểm có? Nếu nó không có thuộc tính 'value', nó chỉ có thể báo cáo' on'. –

+0

Có, tôi đã đọc điều này nhưng kỳ lạ khi tôi xem một hộp kiểm với firebug và tôi kiểm tra và bỏ chọn nó nó không hiển thị một giá trị. Có lẽ tôi cần đặt giá trị là false khi hộp kiểm được tạo hoặc có thể tôi cần trình xử lý sự kiện onChange chung để xử lý thủ công cài đặt giá trị. – Raif

Trả lời

17

Hộp kiểm được chọn chỉ cần gửi thuộc tính value. Một hộp kiểm không được chọn không tự gửi trong biểu mẫu.

Do đó, một thử nghiệm đơn giản nếu thuộc tính của name của hộp kiểm đã được đăng có thể xác định xem nó đã được kiểm tra hay chưa.

+0

Không biết rằng các hộp kiểm không được chọn không được gửi trong POST ... đã cố gắng tìm ra một vấn đề tương tự trong hơn nửa giờ! +1 –

6

Vâng, các trình duyệt khác nhau có thể xử lý các hộp kiểm khác nhau khi giá trị không được đặt.

Bạn có thể đặt thuộc tính giá trị của hộp kiểm một cách rõ ràng thành "true" khi máy chủ của bạn hiểu nó khi hộp kiểm được chọn và nó được gửi đến hộp kiểm đó. Như Alex gợi ý trong câu trả lời của mình, hộp kiểm sẽ không được gửi nếu nó không được kiểm soát, vì vậy, tôi cho rằng máy chủ sẽ mặc định là false trong trường hợp này.

+0

Tôi đã gặp sự cố tương tự với Play cho đến khi tôi thêm một cách rõ ràng 'value =" true "' vào hộp kiểm của mình. – Matthew