Unten ist mein JavaScript-Code. Wie Sie bemerkt haben, sind in meiner $("#register-form").validate
die Regeln alle gleich, was required:true
ist. da es nur das ist, wollte ich es in ihren Eingabefeldern stattdessen im HTML machen. Ich habe es versucht, deshalb löschte ich den gesamten Code innerhalb des Kommentars /* validation */
und fügte required
in jedem ihrer Eingabefelder in meinem HTML-Formular hinzu, aber wenn ich das Formular absende, lädt es nur die Seite neu und gab mir die Nachrichten nicht, die ich erwartete in meinem function submitForm()
. Aber wenn ich den gesamten Code benutze, sendet er das Formular und gibt mir die korrekte Warnmeldung. Wie kann ich die Regeln und Nachrichten hier ignorieren? Da ich bereits required
in meinen HTML-Eingabefeldern habe?Wie können Validierungsregeln und Nachrichten in Ajax ignoriert werden, wenn ein Formular gesendet wird?
$('document').ready(function()
{
/* validation */
$("#register-form").validate({
rules:
{
firstname: {
required: true
},
lastname: {
required: true
},
username: {
required: true,
minlength: 8
},
password: {
required: true,
minlength: 8
},
password2: {
required: true,
equalTo: '#password'
},
email: {
required: true,
email: true
},
answer: {
required: true
},
},
messages:
{
firstname:"Please input your firstname.",
lastname:"Please input your lastname.",
answer:"Please input your answer.",
username:{
required: "Please input your username.",
minlength: "Username must be atleast 8 characters"
},
password:{
required: "Please input your password",
minlength: "Password must be atleast 8 characters"
},
email: "Please enter a valid email address",
password2:{
required: "Please re-type your password",
equalTo: "Password do not match!"
}
},
submitHandler: submitForm
});
/* validation */
/* form submit */
function submitForm()
{
var data = $("#register-form").serialize();
$.ajax({
type : 'POST',
url : 'signup.php',
data : data,
beforeSend: function()
{
$("#error").fadeOut();
},
success : function(data)
{
if(data==2){
$("#error").fadeIn(1000, function(){
alert('Email is already taken.');
document.getElementById ("email").focus();
});
}
else if(data==1){
$("#error").fadeIn(1000, function(){
alert('Username is already taken.');
document.getElementById ("username").focus();
});
}
else if(data==3)
{
alert('Registration successfully submitted.');
window.location='index.php';
}
else{
$("#error").fadeIn(1000, function(){
$("#error").html('<div class="alert alert-danger"><span class="glyphicon glyphicon-info-sign"></span> '+data+' !</div>');
$("#btn-submit").html('<span class="glyphicon glyphicon-log-in"></span> Create Account');
});
}
}
});
return false;
}
/* form submit */
});
wow! das war schnell! Vielen vielen Dank, Sir! es funktionierte!!! : D – Louie