0

我正在使用选择菜单:

<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:这甚至不是以前选择的选择!所以有两件事我不明白:

  1. 为什么加载页面(onload)后会触发 onChange 事件?
  2. 为什么它选择第一个选项,即使之前没有选择?

我刚刚找到了这个功能,我想这是问题所在:

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());
 }); 
});
4

3 回答 3

0

请看这个小提琴。 http://jsfiddle.net/6H9dr/1/

像下面这样使用

$(document).ready(function() {
$('#form_frame1').change(function() {
    alert('Hi');
});

});

于 2013-03-11T19:18:03.727 回答
0

如果您实际上正在使用 jquery,那么为什么不尝试

$('#form_frame1').change(function(){
   getChart($('#form_frame1').val());
 });
于 2013-03-11T19:15:33.597 回答
0

当您刷新页面时,它会自动选择第一个选项。

于 2013-03-11T19:15:35.040 回答