jQuery - onChange事件不会在结果站点上触发

时间:2013-04-05 13:34:07

标签: jquery onchange

我遇到了一个不寻常的错误,我无法弄清楚原因。

我有一个带搜索掩码的页面。根据您的选择,我从php文件中通过JSON获取可用数据,并用它填充选择选项。它的目的是当你选择一个特别优惠时,你只列出了可用的不同类型和地区,而不是那些没有活跃的优惠。

主要它适用于页面的每个站点,使用document.Ready函数或onchange =“updateFunction”事件。

现在,当我搜索和显示数据(GET)工作正常时,onChange jQuery事件似乎没有触发,我不知道为什么。以下是我得到的...(我之前用doc.ready函数做过)

 function updateDestination(){
    $('select#feld-urlaubsart').change(function() {
      var options = '';
      $.getJSON("database/checkoffers.php",{offertype: $(this).val()}, function(data){
        for (var i = 0; i < data.length; i++) {
           options += '<option value="' + data[i].optionValue + '">' + data[i].optionDisplay + '</option>';
        }
        $("select#feld-reiseziel").html(options);
       });
     });
    }

    function updateRegions(){
      $('select#feld-reiseziel').change(function() {
        var options = '';
        $.getJSON("database/checkregions.php",{country: $(this).val()}, function(data){
         for (var i = 0; i < data.length; i++) {
           options += '<option value="' + data[i].optionValue + '">' + data[i].optionDisplay + '</option>';
        }
        $("select#feld-region").html(options);
       });
      });
    }

有人有同样的问题吗?

编辑:

<select id="feld-urlaubsart" name="Urlaubsart" title="Bitte Angebotsart auswählen...">
<option value="0" selected="selected">Alle anzeigen</option>
<optgroup label="Golfurlaub mit Greenfees" title="Golfurlaub mit Greenfees">
<option value="1" title="Alle Greenfee Angebote">Alle Greenfee-Angebote</option>
<option value="2" title="Top-Angebote">Top-Angebote</option>
<option value="3" title="Golfurlaub mit 4 Tage Greenfee">Golfurlaub mit 4 Tage Greenfee</option>
<option value="4" title="Golfurlaub mit 5 Tage Greenfee">Golfurlaub mit 5 Tage Greenfee</option>
<option value="5" title="Golfurlaub mit 6 Tage Greenfee">Golfurlaub mit 6 Tage Greenfee</option>
<option value="6" title="Golfurlaub mit 7 Tage Greenfee">Golfurlaub mit 7 Tage Greenfee</option>
<option value="7" title="Golfurlaub mit 14 Tage Greenfee">Golfurlaub mit 14 Tage Greenfee</option>
<option value="8" title="Sonderangebote">Sonderangebote</option>
</optgroup>

<optgroup label="Golfreisen mit Golfkurs" title="Golfreisen mit Golfkurs">
<option value="9" title="Alle Golfkurs-Angebote">Alle Golfkurs-Angebote</option>
<option value="10" title="Top-Angebote">Top-Angebote</option>
<option value="11" title="Golfreise mit Platzreifekurs">Golfreise mit Platzreifekurs</option>
<option value="12" title="Golfreise mit DGV-Platzreifekurs">Golfreise mit DGV-Platzreifekurs</option>
<option value="13" title="Golfreise mit Turnierreifekurs">Golfreise mit Turnierreifekurs</option>
<option value="14" title="Golfreise mit Handicapkurs">Golfreise mit Handicapkurs</option>
<option value="15" title="Golfreise mit Wochenend-Intensivkurs">Golfreise mit Wochenend-Intensivkurs</option>
<option value="16" title="Golfreise mit Turniergolfwoche">Golfreise mit Turniergolfwoche</option>
<option value="17" title="Professionell begleitete Golfreise">Professionell begleitete Golfreise</option>
</optgroup>
</select>

Reiseland<br />
<select id="feld-reiseziel" name="Reiseziel" title="Bitte Reiseland auswählen...">
<option value="Egal" selected="selected">Alle anzeigen</option>

<?php foreach ($data as $row) : ?>
<option value="<?php echo $row['OfferCountry'] ; ?>" title="<?php echo $row['OfferCountry'] ; ?>"><?php echo $row['OfferCountry'] ; ?></option>
<?php endforeach; ?>
</select>

<select id="feld-region" name="Region" title="Bitte Region auswählen...">
<option value="Egal" selected="selected">Alle anzeigen</option>
<?php foreach ($data as $row) : ?>
<?php if(!empty ($row['OfferRegion'])) :?>
<option value="<?php echo $row['OfferRegion'] ; ?>" title="<?php echo $row['OfferRegion'] ; ?>"><?php echo $row['OfferRegion'] ; ?></option>
<?php endif; ?>
<?php endforeach; ?>
</select> 

1 个答案:

答案 0 :(得分:2)

尝试将其委​​托给文档

 $(document).on('change','select#feld-urlaubsart',function(){
  .....
 });

并且我认为您无需调用更改事件的功能...删除函数function updateDestination(){function updateRegions(){除非您因其他原因调用它