Reputation: 83
I was trying to removing the options from Dropdownlist "Max_Price" e.g: if the user has selected option value="200000" in Dropdownlist "Min_Price", the options in Dropdownlist "Max_Price" which are lower than 200000 should be removed: option value="50000", "100000" & "200000" but without removing the default option with value=" ". Can javascript do this?
I been searching for the answer but with no luck as they are all using jquery to solve related/alike questions. Thank you so much.
<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>
Upvotes: 1
Views: 33
Reputation: 5943
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())
});
<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>
Upvotes: 1