[英]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.