2011-07-27 73 views
1

我有一个模式窗口工程很好,一个jquery窗体,验证了很好,但两个不工作在一起。我尝试过点击/直播活动的不同组合,似乎没有任何工作。只要我将模式窗口ID附加到表单容器,它就会工作。这是我的代码。我很沮丧,我真的希望你能帮助我!非常感谢你提前。我已经在这个几个小时没有进展。使用jQuery验证的模态窗口

var jQuery = jQuery.noConflict(); 
jQuery(document).ready(function() { 
    jQuery.validator.methods.NotEqual = function(value, element, param) { 
     return value != param; 
    }; 
jQuery('#submit').live('click',function() { 
    jQuery('form').submit(); 
}); 


jQuery('form').live("submit", function(event) { 
    jQuery("#contacts").validate({ 
     errorPlacement: function(error, element) {}, 
     errorContainer: "#PIErrorBox", 
     rules: { 
      name: { 
       required: true, 
       NotEqual: 'Name' 
      }, 
      email: { 
       required: true, 
       email: true, 
       NotEqual: 'Email' 
      }, 
      notes: { 
       required: true, 
       NotEqual: 'How Can I Help?' 
      } 
     }, 
     submitHandler: function(form) { 
      jQuery(".button").hide(); 
      var loader = jQuery('<img src="images/loading.gif" alt="loading..." class="loading">').insertAfter(".button"); 
      var param = jQuery(form).serialize(); 

      jQuery.ajax({ 
       type: "POST", 
       url: "include/inc_sendmail.php", 
       data: param, 
       success: function() { 
        jQuery('#contacts').hide(); 
        jQuery('#thankyou').show(); 
       } 
      }); 
      return false; 
     } 
    }); 
}); 

});

我真的很难得到的HTML发布,我得到的是空divs。这里是小提琴,这说明HTML:从http://bassistance.de/jquery-plugins/jquery-plugin-validation/

模态窗口代码http://jsfiddle.net/4kNVv/

使用jQuery验证库

莫代尔JS:http://ortalonline.com/js/fancyzoom.js

通过$ Z(称为'#ContactMeLink')fancyZoom();

非常感谢你的帮助:)

+0

我可以请你看看你的html吗?模式代码在哪里? – mcgrailm

+0

确定的事情,我现在添加它。谢谢! – Ortal

回答

3

有点晚了,但也许这可以帮助别人。

这可能是由于模型在表单之后移动要在身体底部验证的元素的事实。验证器在表单中搜索它们,但没有找到它们。

诀窍不是将模态区域中的元素移出表单标记。

+0

[Andy Mull](http:// stackoverflow。com/users/1536105/andy-mull)的评论:“Karel的答案是100%正确的;将Form标签放在模态的容器标签外

Modal Content, including form
'如果表单在div内,选择器返回NULL。 div在表单内,它按预期工作。“ –

0

看起来就像你在你的HTML有一个额外的封闭形式标记在这里是一个demo

也是此行

var jQuery = jQuery.noConflict(); 

是不正确你不需要将其设置为var只需做

jQuery.noConflict(); 

我不明白这个

$Z('#ContactMeLink').fancyZoom(); 

什么是$ Z这jQuery仍然是?

+0

由于我使用不同的库,所以没有使用冲突标记...如果有更好的方法,请让我知道。我有适当的结束标记,它必须在堆栈溢出中翻译不好。这里是正确的小提琴:http://jsfiddle.net/HH3Hh/。再一次,一旦我从模式窗口中取出窗体,它就可以正常工作。 – Ortal

+0

是使用另一个库创建的模态对话框?你能在你的小提琴中加入对话吗? – mcgrailm

+0

在这里你走了,我终于登上了小提琴并加载到图书馆。 http://jsfiddle.net/Ortal/TxgYA/ – Ortal