jQuery $.ajax()
не работает корректно с IE8, но работает с Firefox, Chrome и Safari. Я отправляю форму и ответ в формате JSON .
Вот мой код:
test.php:
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript" src="jsFile.js"></script>
<form action='_test.php' method='post' class='ajaxform'>
<input type='text' name='txt' value='Test Text'>
<input type='submit' value='submit'>
</form>
<div id='testDiv'></div>
_test.php:
<?php
$arr = array( 'testDiv' => $_POST['txt'] );
echo json_encode( $arr );
?>
jsFile.js:
jQuery('.ajaxform').live('submit', function(event) {
$.ajax({
url : $(this).attr('action'),
type : $(this).attr('method'),
dataType: 'json',
data : $(this).serialize(),
success : function( data ) {
for(var id in data) {
jQuery('#' + id).html( data[id] );
}
}
});
return false;
});
Поведение:
В Firefox, Chrome, Safari:
Когда я отправляю форму, тогда значение текстовое поле (txt) успешно заполняется в DIV (testDiv) без нарушения всей страницы.
В IE:
Когда я отправляю форму, она просто показывает форму json на экране следующим образом: {"testDiv":"Test Text"}
Как решить эту проблему в IE?
Спасибо.