【问题标题】:jquery ajax call on checkbox fails in ie, works fine in Chrome and Firefox复选框上的 jquery ajax 调用在 ie 中失败,在 Chrome 和 Firefox 中工作正常
【发布时间】:2011-07-28 21:26:36
【问题描述】:

下面的 ajax 调用(由复选框发出)在 Internet Explorer 中以某种方式失败,但在 Firefox 和 Chrome 中有效。

<input type="checkbox" name="16086" id="16086" value="1" onclick="jQuery.ajax({type:'POST',dataType:'html',data:'checked=' + this.checked,success:function(data, textStatus){jQuery('#test_div').html(data);},url:'/tour/changeArticleAjax/article_id/16086'})" checked="checked">

(从 chrome 的控制台复制)

查看服务器访问日志证明IE确实调用了,所以我断定这一定是事后处理的问题。我一直在寻找几个小时,但我找不到问题。

可能不相关:有问题的 ajax 调用是由 php 框架 symfony 使用 jq_remote_function 函数生成的。

测试于:

IE 9 - Fails, 
IE 8, emulated by IE9 - Fails
IE 7, emulated by IE9 - Fails
Chrome 13.0.782.99 - Works
Firefox 5.0 - Works

有人看到这里有什么问题吗?

提前致谢!

【问题讨论】:

  • 检查您的view sourse。控制台被解释,所以可能不会显示一些明显的东西。
  • 我现在已经这样做了,两者都显示相同的代码。

标签: jquery ajax internet-explorer checkbox


【解决方案1】:

我还没有测试过。

尝试将 ID 重命名为以字母开头:

命名规则:

  • 必须以字母 A-Z 或 a-z 开头
  • 后面可以跟:字母 (A-Za-z)、数字 (0-9)、连字符 ("-")、下划线 ("_")、冒号 (":") 和句点 (". ")
  • 值区分大小写

更多信息:ID attribute

【讨论】:

  • 确实如此。然而,我刚刚发现我的问题与 IE 以某种方式未绑定到由较早的 ajax 调用创建的会话有关。此调用的响应取决于该会话。不过,我稍后会接受您的回答,因为它指出了当前语法中的缺陷。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-29
  • 2014-05-24
  • 2016-07-07
  • 2015-07-12
  • 2017-07-21
  • 1970-01-01
相关资源
最近更新 更多