2016-05-04 3 views
0

Ich habe mein Formular angepasst, um die erforderlichen Felder zu validieren, es wird jedoch nicht übermittelt, obwohl alle Felder korrekt ausgefüllt sind. Nach meinem Verständnis blockiert die jquery.validate.min.js die Übermittlung. Weiß jemand, warum mein Formular nicht einreicht?Jquery-Validierungsformular, das nicht gebucht wird

Der Code ist unten:

<head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> 
    <script src="http://jqueryvalidation.org/files/dist/jquery.validate.min.js"></script> 
    <script src="http://jqueryvalidation.org/files/dist/additional-methods.min.js"></script> 
    <link rel="stylesheet" href="http://jqueryvalidation.org/files/demo/site-demos.css"> 
</head> 


<div> 
<form id="myform" method="POST" action=""> 

<label for="fname">First Name *: </label> 
<input id="fname" name="fname"> 
<br/> 
<label for="lname">Last Name *: </label> 
<input id="lname" name="lname"> 
<br/> 
<label for="email">Email *: </label> 
<input id="email" name="email"> 
<br/> 
<label for="jtitle">Job Title *: </label> 
<input id="jtitle" name="jtitle"> 
<br/> 
<label for="orgname">Organization *: </label> 
<input id="orgname" name="orgname"> 
<br/> 
<label for="orgname">Describe Yourself *: </label> 
<input id="desyourself" name="desyourself" type="hidden" value="123"> 
<select id="desyourself" name="desyourself"> 
        <option value=""> 
        Choose One...  </option> 
        <option value="124"> 
        Customer 
        </option> 
        <option value="125"> 
        Partner 
        </option> 
        <option value="126"> 
        Prospect 
        </option> 
        <option value="127"> 
        Other 
        </option> 
        <option value="128"> 
        Misc. 
        </option> 
</select> 
<br/> 
<input type="submit" value="Validate!"> 
</form> 
</div> 



<script> 
// avoids form submit 
jQuery.validator.setDefaults({ 
    debug: true, 
    success: "valid" 
}); 

$.validator.methods.email = function(value, element) { 
    return this.optional(element) || /^([\w-\.][email protected](?!gmail.com)(?!yahoo.com)(?!hotmail.com)([\w-]+\.)+[\w-]{2,4})?$/.test(value); 
} 

$("#myform").validate({ 
    rules: { 
    fname: { 
     required: true, 
     minlength: 1, 
     maxlength: 30, 
     lettersonly: true 
    }, 
    lname: { 
     required: true, 
     minlength: 1, 
     maxlength: 30, 
     lettersonly: true 
    }, 
    email: { 
     required: true, 
     email: true 
    }, 
    jtitle: { 
     required: true, 
     minlength: 1, 
     maxlength: 30 
    }, 
    orgname: { 
     required: true, 
     minlength: 1, 
     maxlength: 30 
    }, 
    desyourself: { 
     required: true, 
    } 
    } 
}); 
</script> 
+0

Alle Java-Script-Fehler in der Konsole? –

+0

_ "Warum sendet mein Formular nicht?" _ Dupliziere "desyourself" '' id' und 'name' Attribute bei' input', 'select' Elementen? Beachten Sie, dass Javascript nicht erforderlich ist, um die erwarteten Ergebnisse zurückzugeben. Sie können das Attribut 'HTML5'' required' verwenden – guest271314

Antwort

0

folgende Zeile Ihre Form verhindert einreichen:

// avoids form submit 
jQuery.validator.setDefaults({ 
    debug: true, 
    success: "valid" 

});

0

debug (default: false) Typ: Boolean Aktiviert debug Modus. Wenn dies der Fall ist, wird das Formular nicht übermittelt und bestimmte Fehler werden auf der Konsole angezeigt (überprüft, ob eine window.console -Eigenschaft vorhanden ist). Versuchen Sie zu aktivieren, wenn ein Formular gerade anstelle der Validierung eingereicht wird, um das Senden zu stoppen.

https://jqueryvalidation.org/validate/

Verwandte Themen