2017-05-31 3 views
1

Ich versuche eine Funktion aufzurufen, die mein Formular speichert.jQuery validate: Aufruf einer Funktion nach Formular validiere

Hier ist mein Code:

$('#save-form-datas').validate({ 
    rules: { 
     ROO_Number: { 
      required: true, 
      minlength: 1, 
      maxlength: 4 
     } 
    }, 
    submitHandler: function(form) { 
     var formData = new FormData(form); 
     saveFormDatas(form); 
    } 
}); 

Aber wenn der Code ausgeführt wird, es funktioniert nicht.

Hier ist der Code der Funktion, die ich direkt nach dem für war Validate ausführen wollen:

function saveFormDatas(form) { 

    $.ajax({ 
     type : 'POST', 
     data : form.serialize(), 
     url : 'assets/app/php/ajax/rooms_edit.php', 
     success: function(responseText){ 
      var json = $.parseJSON(responseText); 
      if(json.type=="success") { 
       $('#status-message-saved.hide').removeClass('hide'); 

       if(json.return_url!="") { 
        setTimeout(function(){ window.location.href = "app?q=" + json.return_url; }, 1000); 
       } 
      } 
      if(json.type=="error") { 
       $('#status-message-error.hide').removeClass('hide'); 
      } 
     } 
    }); 
} 

Aber es funktioniert nicht und öffnen Sie einfach eine neue Seite wie diese habe ich übergeben Sie das Formular mit $_GET (alle meine Formulardaten sind in der URL).

Ich muss so machen, weil ich mehr als 100 Formulare habe und nicht meinen Code duplizieren kann, um die Formulare zu speichern.

Danke für Ihre Hilfe.

Antwort

0

Entfernen Sie einfach den submitHandler aus dem Validator und fügen Sie eine externe Funktion hinzu.

$('#save-form-datas').validate({ 
rules: { 
    ROO_Number: { 
     required: true, 
     minlength: 1, 
     maxlength: 4 
    } 
} 
}); 

Handle Formular senden als unten.

$('#save-form-datas').submit(function(event){ 
    event.preventDefault(); 
    if($('#save-form-datas').valid()){ 
     var form = $('#save-form-datas')[0]; 
     var formData = new FormData(form); 
     saveFormDatas(form); 
    } 
}); 

Oder können Sie einfach hinzufügen "return false" wie unten ...

$('#save-form-datas').validate({ 
rules: { 
    ROO_Number: { 
     required: true, 
     minlength: 1, 
     maxlength: 4 
    } 
}, 
submitHandler: function(form) { 
    var formData = new FormData(form); 
    saveFormDatas(form); 
    return false; 
} 
}); 
0

(Dies wird die Standard-Formular verhindern) ich mit diesem in meinem Code getan hatte

$('#save-form-datas').validate({ 
    rules: { 
     ROO_Number: { 
      required: true, 
      minlength: 1, 
      maxlength: 4 
     } 
    } 
}); 

hier können Sie überprüfen, ob Form gültig ist oder nicht

if($('#save-form-datas').valid()){ 
     function myfunction() 
} 

myfunction { 

$.ajax({ 
     type : 'POST', 
     data : $('#save-form-datas').serialize(), 
     url : 'assets/app/php/ajax/rooms_edit.php', 
     success: function(responseText){ 
      var json = $.parseJSON(responseText); 
      if(json.type=="success") { 
       $('#status-message-saved.hide').removeClass('hide'); 

       if(json.return_url!="") { 
        setTimeout(function(){ window.location.href = "app?q=" + json.return_url; }, 1000); 
       } 
      } 
      if(json.type=="error") { 
       $('#status-message-error.hide').removeClass('hide'); 
      } 
     } 
    }); 
} 

Hoffnung, die hilft.

Verwandte Themen