2017-01-13 4 views
1

In _form.html.erbUncaught Syntaxerror: unerwartete Zeichenfolge in jquery

<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script> 
    <%= form_for(user, :html=>{:class=>'user_form_validation'}) do |f| %> 
     <div class="field"> 
      <%= f.label :first_name %> 
      <%= f.text_field :first_name%> 
      <p id="first_name_error"></p> 
     </div> 

     <div class="field"> 
      <%= f.label :last_name %> 
      <%= f.text_field :last_name%> 
      <p id="last_name_error"></p> 
     </div> 
     <div class="actions"> 
      <%= f.submit "Create",:id => "submit_button" %> 
     </div> 
    <% end%> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
      $('.user_form_validation').validate({ 
      alert($('#user_first_name'.val()); 
      errorPlacement: function(error, element) { 
     $(element).closest('div').append(error); 
    }, 
    onfocusin: function(element) {   
     this.lastActive = element; 
     if (this.settings.focusCleanup && !this.blockFocusCleanup) {   
     this.addWrapper(this.errorsFor(element)).hide(); 
     } 
    }, 
    onfocusout: function(element) {   
     if (!this.checkable(element)) { 
     this.element(element); 
     } 
    }, 
    onkeyup: function(element) {   
     this.element(element); 
     if (element.name == 'user[first_name]' && element.value != ""){ 
     $('#first_name_error').addClass('valid'); 
     }else{ 
     $('#first_name_error').removeClass('valid'); 
     } 
     if (element.name == 'user[last_name]' && element.value != ""){ 
     $('#last_name_error').addClass('valid'); 
     }else{ 
     $('#last_name_error').removeClass('valid'); 
     } 
    }, 
    rules : { 
     "user[first_name]" : { 
     required : true 
     }, 
     "user[last_name]" : { 
     required : true 
     }, 
    }, 
    messages : { 
     "user[first_name]" : { 
     required : "Please enter your name." 
     }, 
     "user[last_name]" : { 
     required : "Please enter your name." 
     } 
    } 
      }); 
     }); 
    </script> 

<style> 
.error{ 
    color: red; 
    } 

    p.valid { 
    background: url('../assets/success.png') left -1px no-repeat; 
    padding: 0 0 0 20px; 
    margin: 0 0 0 0px; 
    font-size: 14px; 
    color: #666; 
    line-height: 15px; 
    height: 15px; 
    } 

    label.error { 
    background: url('../assets/error.png') left -1px no-repeat; 
    padding: 0 0 0 20px; 
    margin: 0 0 0 0px; 
    font-size: 14px; 
    color: #792121; 
    line-height: 15px; 
    height: 15px; 
    } 

</style> 

Nach Formular es keine Benachrichtigung zu geben und in der Konsole es zeigt Uncaught Syntaxerror: unerwartete Zeichenfolge für Alarm und es ist nicht zeigt eine Fehlermeldung für first_name und last_name.

+0

Sie sollen ein richtiges Objekt als Parameter übergeben zu '.validate'. Sicherlich nicht, was du da hast. –

Antwort

0

Verwenden Sie stattdessen die eingebaute Methode wie:

$('.user_form_validation').validate({ 
    submitHandler: function(form) { 
     alert($('#user_first_name').val()); 
    } 
}); 

Das Problem wird Ihnen eine Warnung in der Javascript-Objekt platzieren wörtliche:

{ 
alert($('#user_first_name').val()); 
} 

Wie Sie die .validate() Methode zu einem jquery Objekt zugeordnet haben und diese Methode nimmt ein Objekt als Argument. Welches sollte ein Objekt mit Schlüssel und Werten sein.

0

Versuchen Sie so. validate() Funktion überprüft das form.To das Feld alarmieren value.You können von jquery events.As below.Click den Absenden button..e

<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script> 
    <%= form_for(user, :html=>{:class=>'user_form_validation'}) do |f| %> 
     <div class="field"> 
      <%= f.label :first_name %> 
      <%= f.text_field :first_name%> 
     </div> 

     <div class="field"> 
      <%= f.label :last_name %> 
      <%= f.text_field :last_name%> 
     </div> 
     <div class="actions"> 
      <%= f.submit "Create",:id => "submit_button" %> 
     </div> 
    <% end%> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
      $('#submit_button').click(function(){ 
      alert($('#user_first_name').val()); 
      }); 
     }); 
    </script> 

machen Wenn Sie Ihre Form wie this..Fiddle versuchen wollen, validieren http://jsfiddle.net/xs5vrrso/ UND

http://jsfiddle.net/xs5vrrso/4018/

+0

Klicken Sie unter Verwendung von $ ('. User_form_validation') auf ({ alert ($ ('# user_first_name'). Val()); }); es funktioniert, aber ich möchte $ ('. user_form_validation'). valiante ({ alert ($ ('# user_first_name'). val()); }); so wie das. Für .validate funktioniert es nicht – Pravanthi

+0

'click' Event akzeptiert einen Callback. – Jai

+0

für die Validierung müssen Sie die 'Regeln und Nachrichten' von fileds einstellen. –

Verwandte Themen