0

ページが読み込まれたときと変更されたときの値を取得する必要があるドロップダウン リストがあります。レポート フィールドが選択されていない場合は、状態リストまたは年リストを表示しません。レポート フィールドが選択されている場合 (ロード時またはユーザーがドロップダウンから選択した場合) は、適切な div を表示します。

どんな助けでも大歓迎です、ありがとう。

<script type="text/javascript"> 

$(document).ready(function() {
 checkReport();
});

</script>

<select name="report" id="report">
<option></option>
<option value="state">State</option>
<option value="year">Year</option>
</select>

<div id="state-list">NY, CA, TX</div>

<div id="year-list">2012, 2013, 2014</div>

function checkReport() {

  $('#report').live('change', function() {
    $('#year-list, #state-list).hide();
    var report = $('#report').val();

    if (report) {
      $('#' + type_of_report + '-list').show();
    } else {
      $('#year-list, #state-list).hide();
    }
  });
}
4

2 に答える 2

1

試す:

<select name="report" id="report">
    <option value="">Select a type of report</option>
    <option value="state">State</option>
    <option value="year">Year</option>
</select>

<div id="state-list">NY, CA, TX</div>

<div id="year-list">2012, 2013, 2014</div>

<script type="text/javascript"> 

$(function(){

    checkReport($('#report')[0]);

    $('#report').on('change', function() {
        checkReport(this);
    });

    function checkReport(r) {            
        $('#year-list,#state-list').hide().filter(function(){
            return r.value.length > 0 &&   
             $(this).is('#' + r.value + '-list')
        }).show();            
    }
});

</script>

証明: http: //jsfiddle.net/iambriansreed/qvq3z/

ノート:

  1. 空白のオプションを手順に置き換えました。

  2. は元々DOMの一部である$('#report').on('change',ため、必要ありません。selectライブでキャプチャする必要はありません。あなたはただすることができます: $('#report').change(live質問に表示される機能を維持するために追加しただけです。

于 2012-04-20T16:17:52.317 に答える
1
$(document).ready(function() {
checkReport();
 $('#report').live('change', checkReport);
});

function checkReport() {
    var report = $('#report').val();
    $('#year-list, #state-list').hide();
    if (report) {
      $('#' + report + '-list').show();
    }
}

それがあなたが必要とするものだと思います

于 2012-04-20T16:14:33.130 に答える