2016-04-21 48 views
1

如果我有3个单位可用和两个选择hhtml来选择数量,我怎么能做到这一点,当客户端选择1单位(选项值= 1)例如在第一次选择,这个选项会在第二个选项中减去,这只显示剩余的单位?即第二个选择只显示1个单位(选项值= 1)和2个单位(选项值= 2)。我不需要显示和隐藏。我需要的是,如果客户在第一次选择时选择一个单位,在第二次只能选择2个。选项值是指数量如何减少选项两个相关的选择html

<select class="quantity" name="double room"> 
<option value="1">1</option> 
<option value="2">2</option 
<option value="3">3</option 
</select> 
<p> 
<select class="quantity" name="double room"> 
<option value="1">1</option> 
<option value="2">2</option 
<option value="3">3</option 
</select> 
+0

因此,如果在选定冷杉 “1” 的用户'select'然后除去(1)在第二个'select'选项。如果他们选择“2”,那么在第二个选项中删除(2)选项?也许创建一个图片或示例输出 – theblindprophet

+0

如果它们在第一次选择时更改其选择,是否应该放弃? – Barmar

+0

[在下拉列表1中选择从下拉菜单2中隐藏选项]的可能重复(http://stackoverflow.com/questions/31860103/hide-option-from-dropdown-2-when-selected-in-dropdown-1) – mickmackusa

回答

0

以下是一个快速解决方案,希望它能指出您正确的方向。这不会做任何花哨的事情,比如维持秩序,只会在第二次选择时删除并返回选项。

https://jsfiddle.net/jpbjd40s/2/

// Intialize this value with the option missing from #two 
var previousValue = 1; 

// Do stuff on change. 
$('#one').on('change', function() { 

    // Put the unselected option from #one back in #two. 
    $('#two').append('<option value="' + previousValue + '">' + previousValue + '</option>'); 

    // Remember what we had. 
    previousValue = $('#one').val(); 

    // Remove the option from #two selected in #one. 
    $('#two').children('[value="' + $('#one').val() + '"]').remove(); 

}); 
+1

使用'.hide()'可能会更好,如果用户更改第一个选择,则可以轻松恢复它。 – Barmar

+0

我同意,隐藏和显示会更好......就像我说过的那样快:) :) – Deplicator

+0

尽管使用show和hide,但select会保留隐藏的值,直到您更改为止。我正在更新jsfiddle,但它似乎会更长一点(至少我的实现是)。 – Deplicator