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:これは、以前に選択した選択肢でもありません。だから私が理解していないことが2つあります:

  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

実際にjqueryを使用している場合は、試してみませんか

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

ページを更新すると、最初のオプションが自動的に選択されます。

于 2013-03-11T19:15:35.040 に答える
0

このフィドルを見てください。 http://jsfiddle.net/6H9dr/1/

以下のように使用します

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

});

于 2013-03-11T19:18:03.727 に答える