Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
70 views
in Technique[技术] by (71.8m points)

javascript - Unable to get the value of the selected <select> element

Here is a drop-down list and you need to determine which element is selected but an error occurs. Please help to understand.

app.js:350 Uncaught TypeError: Cannot read property 'options' of undefined
    at onChangeSelectCategory (app.js:350)
    at HTMLSelectElement.onchange

with HTML:

<body>
<p align="center"><label>Category</label></p>
<p align="center">
<select onchange="onChangeSelectCategory()" style="visibility: visible" id="adCategory" class="category" name="category" style="width: 300pt">
    <option value="1">Category 1</option>
    <option value="2">Category 2</option>
    <option value="3">Category 3</option>
    <option value="4">Category 4</option>
</select></p>

<p align="center"><label>Sub Category</label></p>
<p align="center">
<select style="visibility: visible" id="subCategory" class="category" name="subcategory" style="width: 300pt">

</select></p>
<script src="scripts/app.js"></script>
</body>

and JS:

var adCategoryRef = document.getElementById('adCategory');
var subCategoryRef = document.getElementById('subCategory');
function  onChangeSelectCategory() {
    var adSelectedCategoryVal = adCategoryRef.options[adCategoryRef.selectedIndex].text; //error
    switch (adSelectedCategoryVal) {
        case 'Category 1': {
question from:https://stackoverflow.com/questions/65864574/unable-to-get-the-value-of-the-selected-select-element

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

As Tom mentioned in his comment, adCategoryRef might be not rendered. I just recommend you to try passing the select element in function parameters, like:

function onChangeSelectCategory(adCategoryRefSel) {
    var adSelectedCategoryVal = adCategoryRefSel.options[adCategoryRefSel.selectedIndex].text; //error
}

And html:

<select onChange="onChangeSelectCategory(this);" style="visibility: visible" id="adCategory" class="category" name="category" style="width: 300pt">

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...