我的Facebox弹出窗口包含一个带有提交按钮的表单。我还有第二个按钮来打开一个无关的Facebox弹出窗口,在我将jQuery.validate添加到项目之前工作。我需要在提交之前验证电子邮件和密码字段。
我应该补充说,这些弹出窗口是通过外部.html文件加载的。这通过AJAX请求加载它们。
在 index.html 上,弹出窗口已设置( $ k 等于jQuery.noConflict());
$k('a[rel*=example_2]').facebox_1({
loading_image : '/images/loading.gif',
close_image : '/images/closelabel.gif'
});
点击链接打开上面的Facebox:
<a href="login.html" title="Log In" rel="example_2" id='login'>Log In </a>
以下所有内容均在 login.html
中验证:
$(function () {
$('form[name="login"]').validate({
rules: {
email: { required: true, email: true },
password: "required"
},
messages: {
email: "",
password: ""
}
});
});
形式:
<form name="login" method="post" action="login.aspx">
按钮不起作用
<a href="#" title="Register" onclick="showRegister()" ><img src="images/register.jpg" /></a>
Nick帮助我在this帖子中发布了表单,但它似乎打破了另一个按钮。我在调试脚本时遇到问题,因为我不知道Firebug是否可以在外部请求(通过XHR)页面设置断点。
我尝试将一个点击处理程序添加到刚刚调用showRegister()的破坏按钮,但这也没有用。 showRegister()
简单调用$('#linkFromIndexDotHtml').click();
,实际上是来自index.html的链接。我认为这可能是问题所在,但事先有效。
答案 0 :(得分:0)
我遇到了同样的问题,并使用http://old.nabble.com/Validation-and-Facebox-td22187264s27240.html
中的信息解决了这个问题$.extend($.facebox, {
settings: {
dom_data: null,
dom: null,
... *在主声明中添加变量dom和dom_data facebox
if (href.match(/#/)) {
var url = window.location.href.split('#')[0]
var target = href.replace(url,'')
$.facebox.settings.dom = target;
$.facebox.settings.dom_data = $(target).children();
$.facebox.reveal($(target).children().show(), klass)
... *这是在fillFaceboxFromHref
中最后,
$(document).bind('close.facebox', function() {
if($.facebox.settings.dom){
$($.facebox.settings.dom).append($.facebox.settings.dom_data);
$.facebox.settings.dom = null;
$.facebox.settings.dom_data = null;
}
... *这是在文件的末尾