jquery和IE提交,ajaxForm无法正常工作

时间:2012-05-12 12:30:48

标签: jquery ajax internet-explorer-9 submit ajaxform

我有一张表格:

<form method="post" action="/balda/server.wsgi" id="gameboard" name="gameboard" >

使用提交按钮:

<input type="submit" name="submit" value="Поиск" style="" onmouseover="CheckElements();">

提交按钮应该发送ajax绑定进程:

jQuery(document).ready(function(){
    jQuery('#gameboard').submit( function() {
        $.ajax({
            url     : $(this).attr('action'),
            type    : $(this).attr('method'),
            dataType: 'json',
            data    : $(this).serialize(),
            success : function( data ) {
                       onAjaxSuccess( data );
                    }
        });
        return false;
    });
});

有接受的功能:

function onAjaxSuccess (result)

所有这些在chrome,ff,opera,safari中运行良好,但它在Internet Explorer 9中无效(其他人未尝试过)

在IE9中,结果变量为空。 我尝试了另一个绑定提交按钮:

$('document').ready(function( result )
{
    $('#gameboard').ajaxForm( {    
        type: "POST",
        data    : $(this).serialize(),
        success: onAjaxSuccess,
        dataType: 'json',
        error: function(){ alert ( 'Error loading data format.' ); }
    }); 
});

但结果是与IE9相同的ff chrome safari歌剧作品。

请告诉我可能是什么问题。

2 个答案:

答案 0 :(得分:4)

问题是IE9在编码cp1251中不理解“JSON”的格式,即使它在响应头中清楚地说明了。在utf-8中翻译JSON响应解决了IE9的问题。

答案 1 :(得分:2)

确保type =“text / javascript”中没有空格,如果在定义脚本类型时有空格,那么IE将不允许你的js工作

<script type="text/javascript">
  ....... 
</script>