I have a dynamically created select option using a javascript function. the select object is
<select name="country" id="country"> </select>
when the js function is executed, the "country" object is
<select name="country" id="country"> <option value="AF">Afghanistan</option> <option value="AL">Albania</option> ... <option value="ID">Indonesia</option> ... <option value="ZW">Zimbabwe</option> </select>
and displaying "Indonesia" as default selected option. note : there is no selected="selected"
attribute in that option.
then I need to set selected="selected"
attribute to "Indonesia", and I use this
var country = document.getElementById("country"); country.options[country.options.selectedIndex].setAttribute("selected", "selected");
using firebug, I can see the "Indonesia" option is like this
<option value="ID" selected="selected">Indonesia</option>
but it fails in IE (tested in IE 8).
and then I have tried using jQuery
$( function() { $("#country option:selected").attr("selected", "selected"); });
it fails both in FFX and IE.
I need the "Indonesia" option to have selected="selected"
attribute so when I click reset button, it will select "Indonesia" again.
changing the js function to dynamically create "country" options is not an option. the solution must work both in FFX and IE.
thank you
The select tag in HTML is used to create a dropdown list of options that can be selected. The option tag contains the value that would be used when selected. The default value of the select element can be set by using the 'selected' attribute on the required option.
You can select on any attribute and its value by using the attribute selector [attributename=optionalvalue] , so in your case you can select the option and set the selected attribute. $("div. id_100 > select > option[value=" + value + "]").
You're overthinking it:
var country = document.getElementById("country"); country.options[country.options.selectedIndex].selected = true;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With