2016-11-18 90 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

相关问题