50の状態のリストから状態を選択するためのドロップダウン<select>
要素があり、最初の値を選択して保存し、その値をDOMに表示します。5番目の値に変更して選択し、保存するとDOMの値の更新が表示されます。ここで、2番目の値を選択して保存しています。値はDOMに保存されておらず、前に選択した5番目の値が表示されています。さまざまな値を確認しましたが、高いインデックス値を選択した後、元に戻すと、低い値はDOMに影響を与えないため、POSTで正しい値を取得できません。
これは私が呼び出している関数ですchange
。
function updateDOM(inputField) {
var elementId = inputField;
if (inputField.type == "select-one") {
var prev_select = inputField.selectedIndex;
$('#'+inputField.id+' option').each(
function() {
$(this).removeAttr('selected');
}
);
document.getElementById(elementId.id).selectedIndex = prev_select;
if (browserVersion == 9) {
document.getElementById(elementId.id)
.options[prev_select].setAttribute("selected","selected");
}
else {
document.getElementById(elementId.id)
.options[prev_select].setAttribute("selected","selected");
}
document.getElementById(elementId.id).value
= document.getElementById(elementId.id).options[prev_select].value;
}
HTML
<select id="abc" name="abc" onchange="javascript:updateDOM(this);" class="required" >
<option name="" value="" title="null" selected ></option>
<option name="AK" value="Alaska" title="null" >Alaska</option>
<option name="AL" value="Alabama" title="null" >Alabama</option>
<option name="AR" value="Arkansas" title="null" >Arkansas</option>
<option name="AZ" value="Arizona" title="null" >Arizona</option>
</select>