選択メニューを使用しています:
<select id="form_frame1" name="frame1" onchange="getChart(this);">
<option value="area_chart_google" >Area Chart</option>
<option value="area_chart_2" selected="selected">Stacked Chart</option>
</select>
getChartは、選択を変更した場合にのみ起動されると想定されています。
function getChart(selection) {
alert(selection.value);
//do something
}
問題は、ページをロードすると、次のようになります。area_chart_google:これは、以前に選択した選択肢でもありません。だから私が理解していないことが2つあります:
- ページをロード(onload)すると、onChangeイベントが発生するのはなぜですか?
- 以前に選択されていないのに、なぜ最初のオプションを選択するのですか?
私はちょうどこの関数を見つけました、私はこれが問題だと思います:
jQuery(function() {
if (localStorage.getItem('form_frame1')) {
jQuery("#form_frame1 option").eq(localStorage.getItem('form_frame1')).prop('selected', true);
jQuery("#form_frame1 option").change();
}
jQuery("#form_frame1").on('change', function() {
localStorage.setItem('form_frame1', jQuery('option:selected', this).index());
});
});