Okay I have a question, may be simple. But I cannot seem to understand what is going on. I have 3 security question drop down menus. I have javascript on the ASPX page that removes questions/repopulates them when you select a questions (so you cannot reselect the questions in the other 2 boxes). This works wonderfully when a user is editing their profile with already selected questions. However, when a user first selects the questions where all three boxes are listing "Please select a question" at selectedIndex 0, the onChange doesn't fire. The function won't even go. I think this has a big something to do with the on change from selected index of 0. I have debugged this thing and it doesn't even enter the function. I even set the onchange action to flash an alert. It just seems something is going wrong when i try to action onchange from selected index of 0. Any ideas?
A:
Maybe I'm missing something here from what you are describing.. The onChanged event will only fire if the selectedIndex changes. So if you bring down a dropdown list at selectedIndex(0) and re-select the first item onChange will not fire.
Markive
2010-07-03 19:25:00
A:
When you repopulate the lists, if you replace the item at index 0 ("Please selecte a question") with another item that represents a question then your event will not fire.
Either
1. You preserve the first item as a none selected index (so your drop downs will always show "please select a question" and the user need to change it). Or
2. You fire your event manually after you finish repopulating the dropdowns:
<html>
<head>
<script type="text/javascript">
function sOnChange(){
alert('Changed');
}
function replaceItems(){
var dropDown = document.getElementById('s');
dropDown.innerHTML = "";
for(var x=0;x<5;x++){
var opt = document.createElement("option");
opt.value = x;
opt.appendChild(document.createTextNode("New options" + (x+1)));
dropDown.appendChild(opt);
}
dropDown.onchange();
}
</script>
</head>
<body>
<input type="button" onclick="replaceItems();" value="Replace Items"/>
<select id="s" onchange="sOnChange()">
<option>Press the button Please</option>
</select>
</body>
</html>
MK
2010-07-07 08:55:06