I'm trying to make subcategory required only upon PDF option selected from the category select.
I have tried this JavaScript but its not working.
function getVal(ele){ var element = document.getElementById("category") ele.value == "pdf" ? element.required =true : element.required =false } getVal(document.getElementById("subcat"))
<select id="category" name="category" required> <option value="">select category</option> <option>doc</option> <option value="pdf">pdf</option> <option>gifs</option> </select> <select id="subcat" name="subcat"> <option value="">select type</option> <option>normal pdf</option> <option>other pdf</option> </select>
But its not working, what am I doing wrong?
using jQuery:
var $category = $("#category") var $subcat = $("#subcat") $category.on('change', function() { $subcat.prop('required', $(this).val() === "pdf") })
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <select id="category" name="category" required> <option value="">select category</option> <option>doc</option> <option value="pdf">pdf</option> <option>gifs</option> </select> <select id="subcat" name="subcat"> <option value="">select type</option> <option>normal pdf</option> <option>other pdf</option> </select>
With pure JS:
var $category = document.querySelector("#category")
var $subcat = document.querySelector("#subcat")
$category.addEventListener('change', function() {
$subcat.required = this.value === "pdf"
})
This runs before the user selected something from the menu. Adding a change
event listener to the select will do it. Also, you're mixing up ele
and element
.
function getVal(ele) {
ele.addEventListener('change', function() {
var element = document.getElementById("category")
element.value == "pdf" ? ele.required = true : ele.required = false
})
}
getVal(document.getElementById("subcat"))
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.