Заполните второй раскрывающийся список, используя jQuery & Ajax - PullRequest
2 голосов
/ 13 октября 2011

Я пытаюсь заполнить второй раскрывающийся список на основе значения первого раскрывающегося списка из внешнего HTML-файла, который заполнен только параметрами.

Пример внешнего файла:

<option value="Bedfordshire">Bedfordshire</option>
<option value="Berkshire">Berkshire</option>
<option value="Buckinghamshire">Buckinghamshire</option>

Пример первых выпадающих значений:

 <select>
 <option value="GB">UNITED KINGDOM</option> //option to load drop-GB.html
 <option value="US">UNITED STATES</option> //option to load drop-US.html
</select>

Все это отлично работает в FF / Safari / Chrome, но не совсем в IE или iPad?

var $shipcountry = $('#ShippingCountry');
 $ShippingStateSelect = $('#ShippingStateSelect');
   $ShippingStateSelect.load('drop-GB.html'); //pre load default list

  $shipcountry.change(function () {
    var countryName = $shipcountry.val();

        $.ajax({
            type: 'GET',
            url: 'drop-' + countryName + '.html',
            success: function (msg) {       
                $ShippingStateSelect.load('drop-' + countryName + '.html');
        //fire other events on page
            },
            error: function (msg) {
               $ShippingStateSelect.hide();
        //show error message here
            },

        }); 

  });

1 Ответ

1 голос
/ 13 октября 2011

Вы не сортируете входящий HTML, и, поскольку он не является "чистыми" элементами, IE не работает, а Firefox / Chrome и т. Д. Пытается это исправить.

Ваш drop-US.html содержит структуру HTML, такую ​​как

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- BC_OBNW -->
<head>
<title>drop-US</title>
<link href="/StyleSheets/ModuleStyleSheets.css" type="text/css" rel="StyleSheet" />
<script type="text/javascript">var jslang='EN';</script>
</head>

Который затем пытается вставить его в поле выбора.

Так что вы должны либо отфильтровать его в запросе ajax, либо удалить его из исходного кода. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...