hQml-атрибут jQuery не работает в IE - PullRequest
20 голосов
/ 05 января 2009

Я использую раскрывающиеся списки стран и штатов в своей форме. Всякий раз, когда пользователь выбирает страну в раскрывающемся списке, соответствующие состояния страны будут заполняться раскрывающимся списком состояний. Я заполняю состояния в раскрывающемся списке с помощью вызова AJAX. Проблема в том, что штаты заполняются в Mozilla, но в IE это не работает. Я предполагаю, что есть некоторая проблема в jQuery при загрузке состояний в раскрывающемся списке состояний. Я использую код JQuery

$('select#edit-country').change(function(e) {

    $.getJSON("loadContactUsStates",{id: $(this).val(), ajax: 'true'}, function(j){
        var options = '';

        for (var i = 0; i < j.length; i++) { 
            options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';

        }

    <!-----I guess the problem is with the below line------------------>
       $("select#edit-state").html(options);

    })//end json

});

Ответы [ 24 ]

12 голосов
/ 05 января 2009

Попробуйте использовать append вместо html , как описано в этом посте .

1010 * редактировать *

На самом деле, я сам столкнулся с этой проблемой. Для меня ответом было сначала вызвать empty , затем append , что имеет тот же эффект (я думаю?), Что и при использовании метода html.

10 голосов
/ 29 марта 2010

Также (в моем случае) проверьте, если у вас есть действительный HTML, у меня были несоответствующие теги, и это работало в Firefox и не в IE (6-8)

9 голосов
/ 11 апреля 2012

добавить к опциям .ajax

кеш: false,

4 голосов
/ 20 сентября 2011

Вот что у меня сработало: (я тестировал на IE7 - IE9 и Chrome)

Похоже, хитрость в IE заключается в использовании DIV-оболочки

Оригинальный html:

<div  id="dynamicMenu"></div>

JQuery скрипт:

$.ajax({

            url: "/myapp/myajaxUrl.jsp",
            type: "GET",
            dataType: "html",
            async: false,
            success: function(msg) {
                $("#dynamicMenu").html(msg);
            });

Где MSG что-то вроде:

<TABLE>
<TBODY>
 <TR>
  <TD><LABEL for="dropdown1">OS type:</LABEL></TD>
  <TD>
   <SELECT id="dropdown1">
    <OPTION selected value="">Select OS</OPTION>
    <OPTION value="WIN">Windoze</OPTION>
    <OPTION value="UX">Unix</OPTION>
    <OPTION value="LX">Linux</OPTION>
   </SELECT>
  </TD>
 </TR>
</TBODY>
</TABLE>

Я попытался .empty () .html () безрезультатно, но вышеприведенное отлично сработало!

4 голосов
/ 29 мая 2012

Следующий метод решил проблему для меня:

$('Element ID OR Class').empty().html(string);

Сначала используйте empty(), а затем установите html, используя html()

3 голосов
/ 15 сентября 2010

Если вы анализируете xml с помощью jquery и вам нужен html () в IE, попробуйте это:

var content = ($ .browser.msie)? $ (this) .context.xml: $ (this) .html ();

Это решило мою проблему. Надеюсь, это кому-то тоже поможет.

Привет.

3 голосов
/ 24 июля 2011

После нескольких часов разочарования я понял, что IE не поддерживает функции атрибутов jquery для элементов html5, кроме div. Я пытался сделать это:

success: function (response, textStatus, XMLHttpRequest) {
    $response = $(response.replace(/\t/g, " "));
    $responseHTML = $response.find("#pageContainer").html();
    $container.html($responseHTML);

Для этого элемента:

<nav id="pageContainer" class="content">
</nav>

Сменив его на это, он решил проблему:

<nav>
    <div id="pageContainer" class="content">
    </div>
</nav>
1 голос
/ 29 августа 2012

У меня была проблема с IE, использующая это:

$('#valor_total').html(valor_total); 

где id имеет то же имя, что и переменная, переданная в качестве параметра. Смена идентификатора сработала хорошо:

$('#div_valor_total').html(valor_total); 
1 голос
/ 10 мая 2012

У меня была та же проблема, и я обнаружил, что самым простым решением было использование функции replaceWith().

1 голос
/ 14 октября 2009

Я только что столкнулся с той же проблемой, и ни одно из предложенных исправлений не помогло. Оказывается, символы табуляции в переданной строке были причиной. Как только я удалил их все, оба html () и append () работали просто отлично. Не думаю, что отформатированные строки для IE .. hmpf.

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