Tôi sử dụng simple_form trong ứng dụng của mình.Làm thế nào để đặt tên cho giá trị trống trong lựa chọn?
Làm cách nào để tôi cho giá trị trống trong các lựa chọn của tôi có văn bản khác với ""?
Tôi chỉ tìm thấy tùy chọn để bao gồm trống hay không.
Tôi sử dụng simple_form trong ứng dụng của mình.Làm thế nào để đặt tên cho giá trị trống trong lựa chọn?
Làm cách nào để tôi cho giá trị trống trong các lựa chọn của tôi có văn bản khác với ""?
Tôi chỉ tìm thấy tùy chọn để bao gồm trống hay không.
Ben,
Tùy thuộc vào cách bạn đang xây dựng các tùy chọn để chọn. Nếu bạn đang làm như mã dưới đây, chỉ cần chuyển một chuỗi vào ô trống:.
select("post", "person_id", Person.all.collect {|p| [ p.name, p.id ] }, {:include_blank => 'Some text here'})
Nếu bạn đang thiết lập các tùy chọn với một options_for_select(), sau đó bạn có thể làm một cái gì đó như sau:
options_for_select([["Dollar", "$"], ["Kroner", "DKK"]])
Với value = "" là giá trị thứ hai trong mảng và tên hiển thị trong trình đơn thả xuống trước tiên. Vì vậy, trong trường hợp của bạn, bạn có thể thay đổi câu trả lời thứ hai trông như thế này:
options_for_select([["Some text here", ""], ["Dollar", "$"], ["Kroner", "DKK"]])
Bạn có thể thực hiện việc này theo cách thủ công bằng cách thêm ["Your Text", ""]
vào đầu mảng được chuyển đến options_for_select
hoặc thêm "<option value=\"\">#{h("Your Text"}</option>"
vào đầu chuỗi được chuyển đến select_tag
.
Thay vì
:include_blank => true
Hãy thử
:include_blank => "your text here"
nếu đây là những gì bạn đang tìm kiếm.
không thực sự, đặt nhãn, không phải là giá trị (thuộc tính) – zappan
Mặc dù không phải là câu trả lời cho câu hỏi - đó là câu trả lời cho câu hỏi của tôi khi tôi muốn đặt nhãn trống - cổ vũ. –
Điều này sẽ không hoạt động đối với các phương thức 'select_tag' nhưng sẽ làm việc với các phương thức' select'. (Và, có, chúng _are_ khác nhau.) Sử dụng một chuỗi cho giá trị trong 'include_blank' sẽ chỉ cung cấp một tùy chọn trống không có chuỗi. Sử dụng 'prompt' trong trường hợp đó. –
Nếu bạn đang sử dụng select_tag(name, option_tags = nil, options = {})
chức năng, tùy chọn đúng là :prompt => "Some text"
hơn là thiết lập một giá trị chuỗi cho select
Mất quá nhiều thời gian để tìm ra nó khác với select_tag so với lựa chọn truyền thống. Cảm ơn. – zarazan
thẻ hoạt động rất khác nhau ở mọi nơi. cũng luôn luôn đi theo tôi. – Dudo
Điều này là hoàn toàn chính xác và một chút khó hiểu. 'select_tag' ** sẽ ** chấp nhận tùy chọn' include_blank' nhưng nó sẽ KHÔNG hiển thị văn bản bạn truyền vào như giá trị cho tùy chọn đó. Bạn cần sử dụng 'prompt' cho điều đó. Cảm ơn @Georgi! –
này đã không hỏi, nhưng nếu bạn muốn tùy chọn trống không phải là lựa chọn bạn có thể thêm ': include_blank => true, disabled: "", được chọn: "", trình giữ chỗ: "Foo Bar" ' – MCB
Georgi có câu trả lời hay hơn, bên dưới. thay vì 'include_blank', sử dụng' prompt: 'Người nào?' 'Nó sẽ có một giá trị trống, nhưng văn bản hiển thị mà bạn cung cấp. 'include_blank' chỉ chấp nhận một boolean - nó không chấp nhận một chuỗi để hiển thị. –