2015-02-09 4 views
10

У меня есть форма существовавшие ранее, которые я пытаюсь добавить проверку Jquery содержащемуся:Uncaught TypeError: Не удается прочитать свойство «называть» неопределенной

<form id="form" method="POST" action="/title/"> 
    {% csrf_token %} 
<input type="hidden" name="id" value="6"> 
<input type="hidden" name="custom_checkbox_Electronic_Signature_man" value="1"> 
          <p> <span class="style9">First Name </span> 
           <input type="text" name="first_name" value="" size="20" class="style7"><span class="style9"> 
          Last Name </span> 
           <input type="text" name="last_name" value="" size="20" class="style7"><span class="style9"> 

Использование JQuery валидатор плагин, я добавил:

$('form').validate({ 
    rules: { 
     first_name: { 
      minlen: 3, 
      maxlength: 15, 
      required: true 
     }, 
     last_name: { 
      minlength: 3, 
      maxlength: 15, 
      required: true 
     }, 
     email: { 
      required: true, 
      email: true 
     }, 
     phone1: { 
      required: true, 
      phoneUS: true 
      }, 
     phone2: { 
      required: true, 
      phoneUS: true 
      }, 
      street: { 
      required: true 
      }, 
       city: { 
      required: true 
      }, 
       state: { 
      required: true 
      }, 
       zip: { 
      zipcodeUS: true 
      } 

    }, 
    highlight: function(element) { 
     $(element).closest('.style9').addClass('.style13'); 
     //$(element).addClass('.style13'); 
    }, 
    unhighlight: function(element) { 
     $(element).closest('.style9').removeClass('.style13'); 
     //$(element).removeClass('.style13'); 
    }, 
    errorElement: 'span', 
    errorClass: 'style13', 
    errorPlacement: function(error, element) { 
     if(element.parent('.input-group').length) { 
      error.insertAfter(element.parent()); 
     } else { 
      error.insertAfter(element); 
     } 
    } 
}); 

Я получаю ошибку, указанную выше. Что я делаю не так?

+0

Как выглядит трассировка ошибок? также где класс .input-group в html – Quince

+1

У меня была такая же проблема, только у меня была 'minLength' вместо' minlength'. Это всегда глупый материал, который убивает меня. – yankeyhotel

ответ

14

Заменить minlen с minlength, и он работает, нет minlen собственности, поэтому call не может внутренне

$('form').validate({ 
    rules: { 
     first_name: { 
      minlength: 3, // <- here 
      maxlength: 15, 
      required: true 
     }, 
     last_name: { 
      minlength: 3, 
      maxlength: 15, 
      required: true 
     }, 
    .......... 
0

попробовать

jQuery(document).ready(function(){ 
       $('form').validate({ 
    rules: { 
     first_name: { 
      minlen: 3, 
      maxlength: 15, 
      required: true 
     }, 
     last_name: { 
      minlength: 3, 
      maxlength: 15, 
      required: true 
     }, 
     email: { 
      required: true, 
      email: true 
     }, 
     phone1: { 
      required: true, 
      phoneUS: true 
      }, 
     phone2: { 
      required: true, 
      phoneUS: true 
      }, 
      street: { 
      required: true 
      }, 
       city: { 
      required: true 
      }, 
       state: { 
      required: true 
      }, 
       zip: { 
      zipcodeUS: true 
      } 

    }, 
    highlight: function(element) { 
     $(element).closest('.style9').addClass('.style13'); 
     //$(element).addClass('.style13'); 
    }, 
    unhighlight: function(element) { 
     $(element).closest('.style9').removeClass('.style13'); 
     //$(element).removeClass('.style13'); 
    }, 
    errorElement: 'span', 
    errorClass: 'style13', 
    errorPlacement: function(error, element) { 
     if(element.parent('.input-group').length) { 
      error.insertAfter(element.parent()); 
     } else { 
      error.insertAfter(element); 
     } 
    } 
}); 
      }); 
3

Вообще говоря, это ошибка, которая может быть повышена, если вам установили недействительное правило проверки jQuery.
Вы можете найти действующие правила валидации, используя ссылку this.