jQuery插件冲突 - 请协助

时间:2010-08-27 16:13:34

标签: jquery ajax forms jquery-plugins

目的是显示一个表单,该表单将使用结果

更新页面上的div
  1. 加载此[page]
  2. 点击链接以显示表单
  3. 提交表格
  4. 提交时,如果表单已隐藏,结果不会显示在div中。

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

      [Here]与在div中显示结果的形式相同

    由于

6 个答案:

答案 0 :(得分:1)

我不确定,但可能是你使用错误ID的初始形式?

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

当表单ID为feditform时。在位于http://plungjan.name/eetest/facy.html $('#feditform').ajaxForm(options);

的正确示例中

答案 1 :(得分:1)

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

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

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

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

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

答案 2 :(得分:0)

在不起作用的示例中,如果在显示表单时绑定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,它应该按预期工作。

答案 3 :(得分:0)

据我所知,你现在有:

<div id="formDiv" style="display:none"> some other code here </div>

但您仍然可以致电$('#feditform').fadeIn('slow').ajaxForm(options);

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

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

希望这有帮助。

答案 4 :(得分:0)

我认为您的问题与jQuery / Javascript无关。

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

echo '<strong>' . $_POST['message'] . '</strong>';

小心发布服务器端代码?

答案 5 :(得分:0)

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

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

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