2010-11-28 4 views
0

У меня возникают проблемы с возвратом HTML из этого вызова ajax. Он отлично работает в FF, но дает мне «нуль» в IE для alert(result.html());Проблема с вызовом Ajax

Вот код. Есть идеи? Благодаря!!!

Переменная ошибок также является нулевой в IE.

Кроме того, не имеет значения, какой элемент я использую в .find(), так как он по-прежнему выглядит нулевым.

function update_price() { 
    $.ajax({ 
     url: $("form[name='MainForm']").attr('action'), 
     data: $("form[name='MainForm']").serialize() + '&btnupdateprice.x=0&btnupdateprice.y=0', 
     type: 'POST', 
     cache: false, 
     success: function (response) { 
      var errors = $(response).find("#listOfErrorsSpan"); 
      var result = $(response).find(".colors_productprice:eq(0)"); 
      alert(result.html()); 
      $(".colors_productprice:eq(0)").replaceWith('<font class="colors_productprice">' + result.html() + '</font>'); 
      $('#listOfErrorsSpan').replaceWith('<span id="listOfErrorsSpan">' + errors.html() + '</span>'); 
     } 
    }); 
} 

$(function() { 
    $("select[name^='SELECT___'],input[name^='SELECT___'][type='radio']").each(function() { 
     $(this).change(function() { 
      update_price(); 
     }); 
    }); 
    $("a[href^='javascript:change_option']").each(function() { 
     $(this).click(function() { 
      var result_href = $(this).attr('href').match(/\'(.*?)\'/)[1]; 
      var result_val = $(this).attr('href').match(/\,(.*?)\)/)[1]; 
      change_option(result_href, result_val); 
      update_price(); 
      return false; 
     }); 
    }); 
}); 

Адрес: HTML-код: Ajax call.

<table border="0" cellspacing="0" cellpadding="0"> 
<tr> 
<td> 
<b><font class="pricecolor colors_productprice"><span class="price_name"><font class="text colors_text"><b>Our Price: </b></font></span> 
<span class="price1">$505.00</span> 
</font> 
</b> 
</tr> 
</table> 

В FF я получаю это для предупреждения.

<span class="price_name"> Price with added options: </span><span class="price1">$505.00</span> 
+0

Вы хотите, чтобы кто-то отлаживал вашу работу с угадыванием вашего HTML-кода. Почему бы вам не опубликовать пример в jsFiddle или что-то полезное? Почему бы вам не описать, какую версию IE вы используете? – vol7ron 2010-11-28 03:13:47

+0

IE8, я обновил вопрос с помощью фрагмента HTML из вызова Ajax – user357034 2010-11-28 03:24:32

ответ

0

вы можете иметь ошибки в этом коде

результат
var errors=$(response).find("#listOfErrorsSpan"); 

вар = $ (ответ) .find ("colors_productprice:. Эк (0)"); alert (result.html());

я не уверен, может быть, селектор для $ (ответ) не определен

+0

Я не думаю, что при создании JavaScript не возникает ошибок JavaScript и отлично работает в FF. Просто не могу понять, почему? Возможно, это неправильный метод получения ответа. Удаление этой строки имеет тот же эффект в IE. – user357034 2010-11-28 02:53:11

0

The: эк (0) в вашем найти заявление может быть проблемой. Вероятно, достаточно просто сказать find («colors_productprice»).

0

Вы не </td>

Не уверен, что это корень проблемы, но FF и IE работают по-разному в Quirksmode, особенно при вставке элементов в DOM на лету.

Смежные вопросы