So i have this strange problem:
i have a select element with class "Menu_DDL"
.
i turn it into a jQuery UI .selectmenu()
the following way:
$(".Menu_DDL").selectmenu({
width: "100%",
change: function (event, ui) {
event.preventDefault();
}
});
now i need to update the value programatically, but the select's value does not change:
var temp_email = $(this).attr("MID");
console.log(temp_email);
console.log("was: " + edit_email_template_dialog.find(".Menu_DDL").val());
edit_email_template_dialog.find(".Menu_DDL").val(temp_email);
console.log("now: " + edit_email_template_dialog.find(".Menu_DDL").val());
edit_email_template_dialog.find(".Menu_DDL").selectmenu("refresh", true);
console.log("refreshed");
edit_email_template_dialog.attr("TID", $(this).parents(".TR_Record").attr("TID"));
edit_email_template_dialog.dialog("open");
the logs from above return the following:
"49"
"was: 23"
"now: null"
"refreshed"
as you can see, the value turns into null
after i try to update it. the weird part is, that if run the same code via console eg edit_email_template_dialog.find(".Menu_DDL").val("49");
it works fine.
what am i missing?
Sometimes I have to set the value of a select menu, and all I know is that the appropriate option might have the value I'm looking for in the value attribute, or in
.text()
. So I loop through each each option, checking the value attribute AND.text()
for example:You can also make everything lowercase, remove spaces, etc, and print debugging notes:
The debugging notes have helped me too. Every once in a while I find a situation where I thought it wasn't finding a match, but it turns out it was (the " ... match found" notice was printed). That helped me figure out that some code later in the same script was resetting the value of the menu.