小编典典

使用jQuery的表单提交不能在IE8上正常工作

ajax

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中:

当我提交表单时,将 textfield(txt)的 值成功填充到 DIV(testDiv)中, 而不会干扰整个页面。

在IE中:

当我提交表单时,它只在屏幕上显示json表单,如下所示: {"testDiv":"Test Text"}

如何在IE中解决此问题?

谢谢。


阅读 271

收藏
2020-07-26

共1个答案

小编典典

我用这个替换了我的jquery代码,它在所有浏览器上都可以使用:

jQuery(document).ready(function(){

    jQuery('.ajaxform').submit( function() {

        $.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;
    });

});

我不知道这是什么,但是它现在正在工作。感谢所有人的参与,并帮助我解决此问题。

2020-07-26