如何使用 simple_form 禁用下拉列表 select 中的特定值?

How to disable specific value in dropdown select with simple_form?

我在 rails 应用程序中使用 simple_form。我想禁用下拉列表中的特定值。

这是部分代码

= simple_form_for(@organization,url: admin_organization_path) do |f| 
 = f.input :hospital_name, input_html: { class: "form-control"}
 = f.input :parent, collection: @organizations, input_html: { class: "form-control", id: "chosen-select-speciality"}  

我尝试使用 :disabled => @organizations.first 但失败了。 有没有其他方法 use.Kindly 帮助我。谢谢。

通过使用 JavaScript,您可以轻松禁用下拉列表中的特定值:

$(/* option selector */).prop('disabled', true);

action

中查看

select 框的简单表单生成器使用每个选项的值与禁用属性的值进行比较,因此您只需简单地使用组织的 ID 来禁用所需的选项:

= simple_form_for(@organization,url: admin_organization_path) do |f| 
 = f.input :hospital_name, input_html: { class: "form-control"}
 = f.input :parent, collection: @organizations, input_html: { class: "form-control", id: "chosen-select-speciality"}, disabled: @organizations.first.id

如果您想禁用 selectbox 的多个选项,您可以手动构建内联选项列表或使用帮助程序并将其用作输入属性:

= f.input :parent,  collection: @organizations.map{|o| [o.id, o.name, {disabled: o.id.in?([1,21,10])}]}, input_html: { class: "form-control", id: "chosen-select-speciality"}