jQuery插件冲突 – 请协助

目的是显示一个表单,该表单将使用结果更新页面上的div

  1. 加载此[ 页 ]
  2. 单击链接以显示表单
  3. 提交表格

提交时,如果表单已隐藏,结果不会显示在div中。

  • 在添加下面答案中建议的代码后,我显示表单,它被提交,但数据没有出现在div中我将ajaxForm作为目标

    [ here ]是在div中显示结果的相同forms

谢谢

提交表单时,请求将发送到服务器,您将获得HTTP错误: 405 Method Not Allowed

看起来它来自您的服务器配置。 http://www.checkupdown.com/status/E405.html

编辑:因为您的代码适用于facy.html页面中的示例,我认为它并非真正来自服务器。 两个例子之间的区别在于表格的作用

  • fancy.html:你加载一个PHP文件
  • fancy3.html:你加载一个HTML文件

您是否尝试将感谢页面称为“thanks.php”并相应地修改表单的操作 。 我想您的服务器可能不允许HTML页面上的POST请求。

我不确定,但可能是你用错误的id初始forms?

 $('#formDiv').fadeIn('slow').ajaxForm(options) 

当表单id是feditform 。 在http://plungjan.name/eetest/facy.html $('#feditform').ajaxForm(options);的正确示例中$('#feditform').ajaxForm(options);

在不起作用的示例中,如果在显示表单时绑定ajaxForm,它应该可以正常工作。

 // you may want to use better/faster selector then 'a' but in this example it // will work $('a').click(function () { $('#feditform').fadeIn('slow').ajaxForm(options); return false; }); 

添加上面而不是jQuery.facybox({ div: '#formDiv' }); return false jQuery.facybox({ div: '#formDiv' }); return false ,它应该按预期工作。

据我所知,你现在有:

但你仍然叫$('#feditform').fadeIn('slow').ajaxForm(options);

据我所知,jQuery这个永远不会出现,因为周围的div是display:none 。 我建议做三件事:

  • 首先使用hide()show()来简化代码,这将避免一些动画的麻烦。 如果这样可行,您可以继续并再次介绍动画版本。
  • 只需通过jQuery隐藏(document).ready函数的内容,这样就可以依赖这些函数了。 我们在“混合”方法(硬编码和通过jQuery)方面遇到了不好的经历,特别是关于节目和隐藏情况。
  • 最后但并非最不重要:一些插件和环境确实使用$ 。 我们倾向于在这些情况下使用关键字jQuery ,因为这将始终保持范围。

希望这可以帮助。

我不认为你的问题是jQuery / Javascript相关。

一旦提交了表单(通过PHP我假设?),您需要回显一条消息,该消息将作为成功回调的一部分传递。 即

 echo '' . $_POST['message'] . ''; 

小心发布服务器端代码?

我们在您发布的链接中显示了该数据。

如果您认为它与插件冲突有关,请尝试jquery.noConflict() http://api.jquery.com/jQuery.noConflict/

虽然不是最优雅的解决方案。 它可以轻松修复您对插件的任何冲突。