2016-06-17 13 views
0

Ich bin mitValidate Textfelder mit JQuery Validation

[Jquery validation plugin][1] 


    [1]: https://jqueryvalidation.org, 

Wie kann ich überprüfen, ob zumindest eine der drei Optionen gefüllt war?

Erstellen einer Methode über .addMethod? Ich versuche, aus dieser Geige anzupassen, aber ich habe Textfelder anstelle von Auswahlboxen:

[validate select box][1] 


    [1]: http://jsfiddle.net/8x1yj0pr/ 

ich keine Nachricht bekommen haben, hier ist das, was ich versuche, bis jetzt:

$.validator.addMethod("validateOptions", function(value, element) { 
     return this.optional(element) || 
     ($('#firstname').val() != '' || 
     $('#username').val() != '' || 
      $('#email').val() != '' ||); 
}, "Please provide at least one "); 

$(document).ready(function() { 
     var validator = $("#VerifyForm").validate({ 
      rules: { 
       formFields: { 
        validateOptions: true, 
       } 
       firstname : { 
        required: true, 
        minlength: 2 
       }, 
       lastname : { 
        required: true, 
        minlength: 7 
       }, 
       email : { 
        required: true, 
        minlength: 2 
       }, 
      }, 
+0

Können Sie nach Ihren HTML-Code und voll Javascript –

Antwort

1

Keine Notwendigkeit, Verwenden Sie ein Plugin nur dafür. Versuchen Sie folgendes:

jsFiddle Demo

$('#submit').click(function(evt){ //<=============================== 
 
    var fn = $('#fn').val(); 
 
    var un = $('#un').val(); 
 
    var em = $('#em').val(); 
 
    if (fn !='' || un!='' || em!=''){ 
 
    alert('good to go'); 
 
    }else{ 
 
    evt.preventDefault(); //<=============================== 
 
    $('#fn').focus(); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<input type="text" id="fn" /><br> 
 
<input type="text" id="un" /><br> 
 
<input type="text" id="em" /><br> 
 
<input type="button" id="submit" value="Submit" />

+0

Dieses work's Recht, aber wie kann ich verhindern, dass die Form von vorgelegt werden? wie ich CakePHP 2.5 verwenden –

+1

@ ÂngeloRigo Siehe Änderung meiner Antwort. 'event.preventDefault()' sollte den Trick machen. – gibberish

+0

Großartig! Vielen Dank! arbeitet für mich! preventDefault stoppt die Verbreitung, das heißt?. –