簡體   English   中英

如何在rails中使用具有唯一值的collection_select?

[英]How to use collection_select with unique values in rails?

我怎么能有一個帶有5個選項的collection_select可供選擇,當選擇了一個選項時,就不能再次為下一個選擇(即,如果首先選擇1,則只能選擇2,3,4,5)。

我有兩個表:發票和Invoice_Line_Items,發票has_many Invoice_Line_items。 Invoice_Line_Items屬於發票。 選項是關系。 例如,我不能為同一商品開兩次發票。

<%= collection_select( :invoice_line_item, :invoice_line_item_id, @invoice_line_items, :id, :supplier_id, {}, {:multiple => true}) %>

謝謝

您將需要一些javascript。 下面的示例僅基於兩個下拉菜單,選擇后,第一個的值將從選項列表中刪除,但是您應該能夠將其調整為所需的數量。 請注意“ collect_2.remove(collect_1.value-1)”部分-這是因為下拉列表對象的計數從0開始,但是其值從1開始-有點令人困惑!

<!DOCTYPE html>
<html>
<body>

<%= form_tag("/users", method: "get", name:"frm") do %>  
    <%= collection_select(:invoice_line_item, :invoice_line_item_id, @invoice_line_items, :id, :supplier_id, {},{onchange: "myFunction()",id:"collect-1", multiple: true }) %><br>
    <%= collection_select(:invoice_line_item, :invoice_line_item_id, @invoice_line_items, :id, :supplier_id, {},{id:"collect-2", multiple: true}) %><br>   
  <%= submit_tag("Go") %>
<% end %>

<script>
function myFunction() {  
    var collect_1 = document.getElementById("collect-1");
    var collect_2 = document.getElementById("collect-2"); 
    collect_2.innerHTML = collect_1.innerHTML;
    collect_2.remove(collect_1.value - 1);    
}   
</script>

</body>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM