如何设置动态填充的下拉列表的值?
Posted
技术标签:
【中文标题】如何设置动态填充的下拉列表的值?【英文标题】:How can I set the value of a dropdown that is populated dynamically? 【发布时间】:2020-11-12 02:21:37 【问题描述】:我正在使用 Rails 呈现表单。
它有一个从控制器填充的下拉列表。
<div class="formField">
<span class="formlabel"> Status</span>
<div id="shipment_options">
<%= select_tag "filters[status]", options_for_select(@outgoing_shipment_status),:prompt => "All", :id => "shipment_status_id" %></div>
</div>
</div>
@outgoing_shipment_status
填充在控制器中,例如 (A,B,C,D,E)。
我想将下拉列表的值预设为列表中的特定值,例如 (B),我将其作为 URL 中的哈希参数传递。 这就是我正在尝试的,
localhost:36080/form_page#B
var status = window.location.hash.substr(1); //checked the value of status is "B"
$("#shipment_status_id").val(status);
也试过了
localhost:36080/form_page?status=B
const urlParams = new URLSearchParams(window.location.search);
var status = urlParams.get('status');
console.log(status); //correct value "B"
$("#shipment_status_id").val(status);
但它会引发内部服务器错误。由于“#”,它似乎尝试调用表单方法,但在第一种情况下失败,在第二种情况下不执行任何操作。
我做错了什么?我怎样才能使它变得更好?
【问题讨论】:
Does $('#shipment_status_id option[value='+status+']').attr('selected','selected');有效吗? @DylanKas 不,它没有 我不知道 Ruby on rails,但是您的 吗? @DylanKas 是的,它创建了一个 SELECT 标记,我还编辑了一些附加问题。 你能分享带有哈希参数的网址吗? 【参考方案1】:你能试试这个吗:-
## syntax
select_tag "credit_card", options_for_select([ "VISA", "MasterCard" ], "MasterCard")
根据您的代码:-
<%= select_tag "filters[status]", options_for_select(@outgoing_shipment_status, params[:status]),:prompt => "All", :id => "shipment_status_id" %>
有关更多信息,请查看此参考:- https://apidock.com/rails/ActionView/Helpers/FormTagHelper/select_tag
【讨论】:
以上是关于如何设置动态填充的下拉列表的值?的主要内容,如果未能解决你的问题,请参考以下文章