当前位置: 首页 > 面试题库 >

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

夹谷成龙
2023-03-14
问题内容

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中解决此问题?

谢谢。


问题答案:

我用这个替换了我的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;
    });

});

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



 类似资料:
  • 我对jQuery提交功能有一些疑问。 这里是工作环境 jQuery:1.7。2,铬(18.0.1025.168米)。 有两个问题。 第一: 我的密码是这样的 HTML jQuery 问题是它在firefox和opera中运行良好,但在chrome中运行良好。 2st: html:如上所述。 jQuery: 它在火狐、歌剧和铬合金中不起作用。它总是触发form.submit原因。 我很困惑。谁能弄清

  • 问题内容: 我有一个沼泽标准的登录表单-使用HTML / jQuery的AIR项目上的电子邮件文本字段,密码字段和提交按钮。当我在表单上按Enter键时,整个表单的内容消失了,但是表单没有提交。有谁知道这是Webkit的问题(Adobe AIR使用Webkit的HTML)还是我捆绑了东西? 我试过了: 但这既没有停止清算行为,也没有提交表格。没有与表单相关的操作-可能是问题吗?我可以在动作中添加J

  • 问题内容: 我正在尝试通过AJAX提交表单,而不是使用常规的POST提交。HTML只是一个标准格式,我的jQuery代码如下: (基于此答案) 我从Submit函数返回false,但是表单仍在提交,我不知道为什么。没有收到任何Firebug错误。 问题答案: 如果html设置正确,则您的代码可以正常工作。这是我的测试html(使用php),因此您可以将其与自己的进行比较。

  • 问题内容: 看起来这应该是jQuery内置的东西,不需要多行代码,但是我找不到“简单”的解决方案。说,我有一个HTML表单: 当有人更改选择字段时,我想使用ajax提交表单以更新数据库。我认为可以通过以下方式来执行以下操作,而无需手动创建值/属性,只需将它们全部发送即可,例如: 我想念什么? 问题答案: 这就是最终的工作。

  • 问题内容: 我试图使用此示例使用AJAX提交HTML表单。 我的HTML代码: 我的剧本: 这是行不通的,我什至没有收到警告消息,提交时我不想重定向到另一个页面,我只想显示警告消息。 有简单的方法吗? PS:我有几个领域,我仅举两个例子。 问题答案: AJAX快速描述 AJAX只是异步JSON或XML(在大多数新情况下为JSON)。因为我们正在执行ASYNC任务,所以我们很可能会为我们的用户提供更

  • 我是新的PHP Codeigniter框架。我正在设计一个页面,其中我使用了一个链接。点击链接时,它调用一个jQuery函数,通过jQuery提交表单。我已经使用codeigniter表单验证方法进行服务器端验证,目前我已经禁用了客户端验证。 问题是,在这个过程中,当表单通过jQuery提交时,codeigniter表单验证方法不起作用。 但是如果我使用submit按钮来提交表单,那么codeig