2012-07-18 20 views
7

mã này: = form_fo: store_products do | f | = f.check_box: track_inventoryTại sao trình trợ giúp biểu mẫu check_box tạo hai hộp kiểm, một hộp kiểm bị ẩn?

tạo html này:

<input name="product_group[products_attributes][0][store_products_attributes}[1342647745501][track_inventory]" type="hidden" value="0"> 

<input id="product_group_products_attributes_0_store_products_attributes_1342647745501_track_inventory" name="product_group[products_attributes][0][store_products_attributes][1342647745501][track_inventory]" type="checkbox" value="1"> 

lý do cho các phần tử ẩn đầu tiên là gì?

+0

Tôi nghĩ bạn có lỗi đánh máy. Hãy thử 'form_for' thay vì' form_for'. – Dougui

Trả lời

21

Đặc tả HTML cho biết các hộp kiểm không được chọn sẽ không được gửi bởi các trình duyệt web. Điều này có nghĩa rằng, nếu bỏ chọn, đường ray sẽ không nhận được bản ghi liệu hộp kiểm trên biểu mẫu có được bỏ chọn hay không. Điều này sẽ rất quan trọng, ví dụ, nếu người dùng đang chỉnh sửa một bản ghi trong đó hộp kiểm đã được kiểm tra trước đó và họ đã quyết định bỏ chọn nó - đường ray sẽ không biết để cập nhật thuộc tính này.

Trường ẩn có cùng tên với hộp kiểm, vì vậy nếu hộp kiểm không được gửi, thì hidden_field sẽ được gửi thay thế (với giá trị là '0', có nghĩa là không được chọn). Bằng cách này, đường ray sẽ luôn nhận được tín hiệu về việc hộp kiểm đã được chọn hay chưa được chọn.

Thông tin thêm về hình ảnh này tại APIDock

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