Javascript:如果第一个下拉列表的值大于第二个下拉列表,如何从第二个下拉列表中删除选项,反之亦然?

时间:2017-11-05 04:22:23

标签: javascript html

我试图从Dropdownlist" Max_Price"中删除选项。例如:如果用户选择了选项值=" 200000"在Dropdownlist" Min_Price"中,Dropdownlist" Max_Price"中的选项应删除低于200000的选项:选项值=" 50000"," 100000" &安培; " 200000"但是没有删除带值=&#34的默认选项; &#34 ;. javascript可以这样做吗?

我一直在寻找答案,但没有运气,因为他们都在使用jquery来解决相关/类似的问题。非常感谢你。

<select name="Min_Price">
    <option value=" ">Min. Price</option>
    <option value="0">$ 0</option>
    <option value="50000">$ 50,000</option>
    <option value="100000">$ 100,000</option>
    <option value="200000">$ 200,000</option>
    <option value="300000">$ 300,000</option>
    <option value="400000">$ 400,000</option>
    <option value="500000">$ 500,000</option>
</select>

<select name="Max_Price">
    <option value=" ">Max. Price</option>
    <option value="50000">$ 50,000</option>
    <option value="100000">$ 100,000</option>
    <option value="200000">$ 200,000</option>
    <option value="300000">$ 300,000</option>
    <option value="400000">$ 400,000</option>
    <option value="500000">$ 500,000</option>
    <option value="600000">$ 600,000</option>
</select>

1 个答案:

答案 0 :(得分:1)

&#13;
&#13;
var minPrice = document.querySelector('[name="Min_Price"]');
var maxPriceOptions = document.querySelectorAll('[name="Max_Price"] option');
var reg = /[\$\,]/g;
minPrice.addEventListener("change", function(e){
 var v = +e.target.value.replace(reg, "");
 Array.from(maxPriceOptions).forEach(el=>el.value!==" " &&+el.value.replace(reg, "")<v && el.remove())
});
&#13;
<select name="Min_Price">
    <option value=" ">Min. Price</option>
    <option value="0">$ 0</option>
    <option value="50000">$ 50,000</option>
    <option value="100000">$ 100,000</option>
    <option value="200000">$ 200,000</option>
    <option value="300000">$ 300,000</option>
    <option value="400000">$ 400,000</option>
    <option value="500000">$ 500,000</option>
</select>

<select name="Max_Price">
    <option value=" ">Max. Price</option>
    <option value="50000">$ 50,000</option>
    <option value="100000">$ 100,000</option>
    <option value="200000">$ 200,000</option>
    <option value="300000">$ 300,000</option>
    <option value="400000">$ 400,000</option>
    <option value="500000">$ 500,000</option>
    <option value="600000">$ 600,000</option>
</select>
&#13;
&#13;
&#13;