2015-02-09 63 views
10

Ho una forma preesistente, che sto cercando di aggiungere la convalida jQuery per contenente:TypeError Uncaught: Impossibile leggere la proprietà 'chiamare' undefined

<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"> 

Utilizzando il plugin jQuery validatore, ho aggiunto:

$('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); 
     } 
    } 
}); 

Ho ricevuto l'errore sopra elencato. Che cosa sto facendo di sbagliato?

+0

come si presenta la traccia di errore? anche dove è class .input-group nel codice HTML – Quince

+1

Ho avuto lo stesso problema solo che avevo "minLength" invece di "minlength". Sono sempre le cose stupide che mi uccidono. – yankeyhotel

risposta

14

Sostituire minlen con minlength, e funziona, non v'è alcuna proprietà minlen, così call fallisce internamente

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

provare

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

In generale questo è un errore che può essere sollevato se ha impostato una regola di convalida jQuery non valida.
È possibile trovare le regole di convalida valide utilizzando il collegamento this.

Problemi correlati