jQuery插件冲突 – 请协助
目的是显示一个表单,该表单将使用结果更新页面上的div
- 加载此[ 页 ]
- 单击链接以显示表单
- 提交表格
提交时,如果表单已隐藏,结果不会显示在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/
虽然不是最优雅的解决方案。 它可以轻松修复您对插件的任何冲突。