I am dynamically creating a dropdown list in a table and want to retrieve the value of the selected item. I can get the value of other elements (eg, input); however the dropdown has me stumped. In the below code the startDate is correct however parRating is always 1 (the first value in the select).
Note: I want the value (parIdArray) not the val (parRatingArray).
HTML for creating:
html += "<td style='width : 1%; white-space: nowrap;'><select name='parRating'>"
for (let i = 0; i <= paraArray; i++) {
if (this.parRating == parRatingArray[i]) {
// set the current option to this.parRating
html += "<option selected name='parRatingOption' value='" + parIdArray[i] + "'>" + parRatingArray[i] + "</option>"
}else {
html += "<option name='parRatingOption' value='" + parIdArray[i] + "'>" + parRatingArray[i] + "</option>"
}
};
html += "</select></td>";
if (this.patparStartDate == null) {
html += "<td style='width : 1%; white-space: nowrap;'><input type='date' name='startDate' value=''></td>";
}else {
html += "<td style='width : 1%; white-space: nowrap;'><input type='date' name='startDate' value='" + this.patparStartDate + "'></td>";
}
HTML to retrieve values:
var parRating = $(this).parents('tr:first').find('option[name="parRatingOption"]').value;
alert("parRating: " + parRating);//always 1
var startDate = $(this).parents('tr:first').find('input[name="startDate"]').val();
You just need to target the option selected in your code above using the jQuery :selected selector:
Also you need to use .val()
to get the option value not the value
attribute in jQuery
Try this code below:
var parRating = $(this).parents('tr:first').find('option[name="parRatingOption"]:selected').val();
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.