jQuery验证 - 元素未定义

时间:2012-02-19 03:18:06

标签: javascript jquery jquery-validate

我正在使用jquery.validation插件来验证表单上的输入

我按如下方式使用它:

$(document).ready(function () {
jQuery(function () {
    // You can specify some validation options here but not rules and messages

    jQuery('form[id="reservationForm"]').validate({ ignore: ":not(:visible)" });

    $("#adult1Birthdate").mask("9999-99-99");
    $("#reservationPersonBirthdate").mask("9999-99-99");

    $("#adult1Firstname").rules("add", { required: true, minlength: 2, messages: { required: '<span style="color:Red">Pole wymagane</span>'} });
});

});

但我收到以下错误:

  

元素未定义

在以下行中:

var settings = $.data(element.form, 'validator').settings;

我做错了什么?

**EDIT**

当我使用jquery.validation

时,以下代码也不起作用
    $(document).ready(function () {
$(function () {

                $('a[id^="regionDetails"]').click(function () {
                    var vid_id = $(this).attr("id").replace("regionDetails", "#regionDetailsArea");
                    $('div[id^="regionDetailsArea"]').hide();
                    $(vid_id).show();
                    return false;
                });
            });
});

3 个答案:

答案 0 :(得分:2)

确保您正在调用的元素.rules()确实存在,jquery.validate在添加规则时不检查它,并且在描述的行中失败,仅仅因为元素未定义。

答案 1 :(得分:1)

如果您使用的是$,请不要使用jQuery。试试这个:

$(document).ready(function () {
  $('#reservationForm:visible').validate();

  $("#adult1Birthdate").mask("9999-99-99");
  $("#reservationPersonBirthdate").mask("9999-99-99");

  $("#adult1Firstname").rules("add", { required: true, minlength: 2, messages: { required: '<span style="color:Red">Pole wymagane</span>'} });

  $('a:not(#regionDetails)').click(function() {
    $('div:not(#regionDetailsArea)').hide();
    $($(this).attr("id").replace("regionDetails", "#regionDetailsArea")).show();

    return false;
  });
});

答案 2 :(得分:0)

我注意到,当我出现此错误时,我在规则中调用的输入在我的表单中没有定义。或者,反之亦然。