如何设置动态填充的下拉列表的值?

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

【讨论】:

以上是关于如何设置动态填充的下拉列表的值?的主要内容,如果未能解决你的问题,请参考以下文章

使用与第一个下拉列表相同的值填充第二个下拉列表

如何在引导下拉列表中获取选定元素,其中下拉列表是动态填充的

根据之前的下拉选择动态填充多达 3 个下拉列表

如何根据使用 jQuery/AJAX 和 PHP/MySQL 选择的第一个下拉列表填充第二个下拉列表?

使用In-cell下拉列表中的值自动填充单元格 - VBA

从下拉列表中显示数据php