gpt4 book ai didi

javascript - Collection_select 在 javascript 的帮助下使用参数重定向

转载 作者:行者123 更新时间:2023-11-30 16:56:03 25 4
gpt4 key购买 nike

当我更改下拉列表中的选项时,我正在尝试将用户重定向到路由“attendance/:domain”。我正在使用 javascript 执行此操作。早期的实现如:window.location = "<%= url_for(:controller => 'attendance', :action => 'index') %>?" + id;只需将 id 添加到较早的链接,所以如果我有 'attendance/2'它会变成'attendance/23'而不是 'attendance/3' .所以我想像这样使用 ruby​​ 提供的路径:

配置.rb:

get 'attendance/:domain', to: 'attendance#index', as: 'attendance_domain'

查看:

<div class="form-group col-lg-3 col-md-5 ">
<%= label_tag(:domain, "Domeniu", class: "control-label") %>
<%= collection_select(nil, :id, @domains, :id, :complete_name, {selected: -1}, {:onchange=> "redirectToIndex(this.value)",:selected => params[:domain],class: "form-control"}) %>
</div>

javascript 在 View 中:

function redirectToIndex(trainerId){
window.location ="<%= url_for(attendance_domain_path(" + trainerId + ")) %>";
}

在这个实现中,我被重定向到的链接是:http://localhost:3000/attendance/ + trainerId +这不是我想要的。它应该是该变量的值而不是 trainerId。有什么建议吗?
最后我的问题是:如何使用 collection_select 重定向参数。此下拉菜单将在同一页面上可用,因此需要相应地更改参数,而不是像上述情况那样。

最佳答案

只需将完整的 url 从 collection_select 通过 proc 传递给 redirectToIndex()。在 View 中试试这个:

<%= collection_select(nil, :id, @domains, -> (d) {attendance_domain_path d},
:complete_name, {selected: -1}, {:onchange=> "redirectToIndex(this.value)",
:selected => params[:domain],class: "form-control"}) %>

在 JS 中:

function redirectToIndex(val){
window.location = val;

关于javascript - Collection_select 在 javascript 的帮助下使用参数重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29715307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com