【问题标题】:Jquery Validation not working on import of Galleria scriptJquery Validation 无法导入 Galleria 脚本
【发布时间】:2013-02-18 20:01:02
【问题描述】:

我正在构建一个带有 Galleria 库、隐藏/显示和验证表单的基本网站。当我加载 Galleria 脚本时,对我的基本反馈表单的验证失败。

当我还将 Galleria 脚本加载到页面中时,哪些原因可能会阻止 JQuery 验证脚本运行?验证在 Galleria 未加载时工作正常,但在加载时失败。现场直播:http://lucidnetdesigns.com/invidia/这是当前的导入和脚本:

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script type="text/javascript" src="scripts/jquery.validate.js"></script>
<script type="text/javascript" src="galleria/galleria-1.2.7.min.js"></script>
<script type="text/javascript" src="http://ui.jquery.com/latest/ui/effects.core.js"></script>
<script type="text/javascript" src="http://ui.jquery.com/latest/ui/effects.slide.js"></script>

<script type="text/javascript">

   Galleria.loadTheme('galleria/themes/twelve/galleria.twelve.min.js');
    Galleria.run('#galleria', {
    fullscreenCrop: 'false',
    autoplay: 3000,
    imageCrop: true
});

            $(document).ready(function() {
                $('#content_salon').hide();

                $('a#show_content_salon').click(function () {
                    $('#content_salon').slideToggle('slow');
                    return false;
                });
            });

            $(document).ready(function () {
                $('#content_services').hide();

                $('a#show_content_services').click(function () {
                    $('#content_services').slideToggle('slow');
                    return false;
                });

            });

            $(document).ready(function () {
                $('#content_contactus').ahow();

                $('a#show_content_contactus').click(function () {
                    $('#content_contactus').slideToggle('slow');
                    return false;
                });
            });


$(document).ready(function(){
    $("#form1").validate({

    rules: 

    {

      email1: "required",
       email2: {
              equalTo: "#email1" },

      phone: {
        minlength: 10,
        maxlength: 10
      },

      fullname: {
        minlength: 2
      },


    },

    messages: { 

    name: "Please enter your full name.",
    email1: "Please enter a valid email.",
    phone: "Phone number must be 10 characters (include area code).",
    },

    errorPlacement: function(error, element) { 
            error.appendTo( element.parent() ); 
        }
  });

});
  </script>

【问题讨论】:

  • 您是否查看过任何控制台错误?第一个是:“$('#content_contactus').ahow is not a function”~也许你的意思是show而不是ahow
  • 您还应该在 OP 中包含表单的相关 HTML。谢谢。
  • 深入研究后,很明显您的整个问题是由各种拼写错误引起的 JavaScript 错误引起的。您需要让 Galleria 正常运行,然后才能期望任何 JavaScript 正常运行。

标签: jquery jquery-validate galleria


【解决方案1】:

我发现您的网页上有很多拼写错误。

根据您的 OP,这些是您的 rules...

rules:  {
      email1: "required",
      email2: {
          equalTo: "#email1" 
      },
      phone: {
          minlength: 10,
          maxlength: 10
      },
      fullname: {  // <-- no such field defined
          minlength: 2
      }
},
messages: { 
    name: "Please enter your full name.",  // <-- no such field or rule
    email1: "Please enter a valid email.",
    phone: "Phone number must be 10 characters (include area code).",
},

但是,根据您的页面,没有名为 fullname 的此类字段。你的实际 HTML 是这样的:

<input name="firstname" ....

在您的messages 部分中,您为name 定义了一条消息,但您的表单中没有name="name" 的字段,也没有任何名为name 的规则。

您的验证码有效:http://jsfiddle.net/zPQJb/

旁注:如果您已经在 .validate() 中指定了包含 required 的复合规则,则没有理由在 input 字段上使用 class="require"。这是多余的。


页面上的第一个错误:

"$('#content_contactus').ahow is not a function"

ahow 应该是show

您需要解决此问题以及页面上的数十个其他 JavaScript 错误(似乎是由许多拼写错误引起的),然后才能期望任何剩余的 JavaScript 正常运行。

【讨论】:

  • 伙计们 - 谢谢 - 我对这些东西比较陌生,所以有你的勤奋推动我编写更整洁的代码真是太好了。我正在玩显示/隐藏,并且明显拼错了“显示”而不是“如何”。感谢其他提示 - 我会更新和测试。最好的,尼克
  • 更新 - 将“ahow”更正为“show”实际上解决了我原来的问题。我现在将修复其余部分:)
猜你喜欢
  • 2016-07-08
  • 2022-11-17
  • 2017-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-10
  • 2013-06-22
  • 1970-01-01
相关资源
最近更新 更多