javascript - select_tag rails,提交前动态显示值
问题描述
我有一个表格,显示了我可以选择的一些可用银行,使用 select_tag。当我提交表单时,所选银行存储在 params[:bank] 中
我想要做的是在提交之前动态显示有关所选银行的信息。基本上,如果我选择“银行 1”,我想显示银行 1 的信息。如果我选择银行 2,我想显示银行 2 的信息。当我高兴时,我会屈服。
这是我的代码
<%= form_tag final_payments_path, method: :get do %>
<%= select_tag "bank", options_from_collection_for_select(Bank.active, "id", "name") %>
<%= button_tag( class: "btn-continue-displayed mt-3") do %>
<i class="fas fa-caret-left"></i><p>Approve</p>
<% end %>
<% end %>
如何在提交和显示信息之前动态找到选定的选项?
我的第一步是在我的选择标签上添加 onchange: "alert(this.value)"。它工作并显示ID。如果我改变并放
options_from_collection_for_select(Bank.active, "IBAN", "name")
它通过 IBAN 显示警报。这是一个好的开始。
有没有一种方法可以将 3 个元素(id、IBAN 和 SWIFT)放入值中,而不仅仅是一个?
非常感谢你的帮助
解决方案
You can find bank id via js:
$('#select_tag_id').on('change', function () {
let bank_id = $(this).val();
});
bank_id
will contain id of selected bank.
routes.rb:
get "/selected_bank" => 'your_controller#show_info'
Then:
$('#select_tag_id').on('change', function () {
let bank_id = $(this).val();
$.ajax({
data: {bank_id: bank_id},
url: '/selected_bank',
type: 'GET'
});
});
Your controller:
def show_info
@bank = Bank.find(params[:bank_id])
respond_to { |format| format.js }
end
_info.html.erb:
<div class="info">
<p>
Id:
<%= @bank.id %>
</p>
<p>
Name:
<%= @bank.name %>
</p>
</div>
show_info.js.erb:
$('.some-class-on-page').html("<%= j(render 'info') %>");
推荐阅读
- azure-cosmosdb - 使用 Azure Key Vault 轮换机密
- node.js - 如何使用 Node.js 覆盖此功能以仅删除 Mongoose 中的选定用户
- html - 为 .ttf 和 .woff 文件获取 net::ERR_ABORTED 404
- reactjs - 带有 React 和服务器端渲染的 FontAwesome
- python - 使用 openpyxl 有条件地删除一行
- javascript - node.js mysql通配符搜索无法执行
- swift - 如何在后台执行一些动作
- wordpress - WordPress网站主页加载问题
- c# - 带有桌面扩展或 WCF 的 UWP?
- html - 我如何让我的按钮 div 在每个设备上都响应