2016-11-18 131 views
0

在此先感謝您的任何答覆。我現在有一個網頁,你可以下訂單。在此網頁中,您可以從下拉列表中選擇「產品A」。一旦選擇了「產品A」,就會觸發一個事件,導致另一個下拉列表。現在我想讓「產品A」不會顯示在第二個下拉列表中。這是代碼。如何刪除從其他下拉列表中的上一個下拉列表中選擇的選項

<table style="margin: 0px auto;width: 700px" id="shopTable"> 
<tr> 
<td> 
<select name="product" class="product" style="width: 250px" onchange='onchangeprod(this);' > 
<c:forEach var="pro" items="${product}"> 
<option value="${pro.id}" data-price="${pro.price}">${pro.name}(&#8364;${pro.price})</option> 
</c:forEach> 
</select> 
</td> 
</tr> 

該腳本如下。

function onchangeprod(row){ 
     var test ="<tr>" 
       +"<td>" 
       +"<select name='product' class='product' style='width: 250px' onchange='onchangeprod(this);'>" 
         +"<c:forEach var='pro' items='${product}'>" 
          +"<option value='${pro.id}' data-price='${pro.price}'>${pro.name}(&#8364; ${pro.price})</option>" 
         +"</c:forEach>"  
       +"</select>" 
       +"</td>" 
       +"</tr>"; 
    $("#applyTable").append(test); 
    } <tbody id="applyTable"></tbody> 

回答

0

Supose以前的對象ID存儲在一個名爲prevId然後使用if語句在你的模板,不同的ID

function onchangeprod(row){ 
    var test ="<tr>" 
      +"<td>" 
      +"<select name='product' class='product' style='width: 250px' onchange='onchangeprod(this);'>" 
       <c:forEach var='pro' items='${product}'> 
        <c:if test="${pro.id!=prevId}"> 
       +"<option value='${pro.id}' data-price='${pro.price}'>${pro.name}(&#8364; ${pro.price})</option>" 
        </c:if> 
       </c:forEach> 
      +"</select>" 
      +"</td>" 
      +"</tr>"; 
$("#applyTable").append(test); 
} <tbody id="applyTable"></tbody> 
+0

感謝檢查該ID和打印<option>只能爲對象變量。我試過了,但沒有奏效。我在函數中定義了一個變量「prevId」,併爲它賦值$(row).find(':selected')。val()。我用console.log(prevId)來檢查「prevId」的值,它返回了正確的數字。但下拉列表中仍然沒有變化。 –

+0

如果我想要第三個下拉列表不包含在前兩個下拉列表中選擇的選項,我應該怎麼做? –

+0

那麼,如果你只有幾個下拉菜單,那麼你可以使用'&&''condition' '如果有許多下拉菜單, 10那麼你可能需要Arraylist – Viney

相關問題