2017-03-12 4 views
0

Mein Skript sollte verhindern, dass die Seite aktualisiert oder umgeleitet wird, aber wenn ich auf Senden klicken, leitet es mich um.JQuery Ajax senden Daten aus dem Formular funktioniert nicht

Fehlermeldung von JavaScript-Konsole

Uncaught TypeError: $(...).val(...).len is not a function

MyScript.js

$(document).ready(function() { 
    console.log("Ready!"); 
    //Submitting the form data 
    $("#user-form").submit(function(e){ 
     if($('#fName').val().len() != "" && $('#lName').val().len() != "" && $('#nickname').val().len() != "") { 
      $.ajax({ 
       type: "POST", 
       url: "user-process.php", 
       data: $("#user-form").serialize(), 
       success: function(data){ 
        $('#user-form')[0].reset(); 
        console.log(data); // show response from the php script. 
       } 
      }); 
     } 
     else { 
      alert("Please fill the fields.") 
     } 
     e.preventDefault(); 
    }); 

    setInterval(function(){ $(`#table`).load('info.php #table'); }, 1000); //Loading table data without refreshing page. 

}); 
+0

Werfen Sie einen Blick auf [JavaScript Stringlänge] (https://www.w3schools.com/jsref/jsref_length_string.asp). – ccKep

Antwort

0

"len()" ist kein Javascript-Funktion, können Sie Ihren Code ändern können:

if($('#fName').val() && $('#lName').val() && $('#nickname').val()) 

und

0

val() gibt einen String zurück. Strings haben keine .len() Funktion. Auch, weil Sie es mit einem anderen String zu vergleichen, Sie brauchen nicht zu Länge zu bekommen, nur verwenden:

if($('#fName').val() != "" && $('#lName').val() != "" && $('#nickname').val() != "") { 

Wenn Sie Länge überprüfen möchten, können Sie es mit .length. Aber dann sollten Sie es mit 0 vergleichen, nicht mit "":

if($('#fName').val().length != 0 && $('#lName').val().length != 0 && $('#nickname').val().length != 0) { 

Dinge wie $('#fName').val().length != "" würde technisch funktionieren, weil JavaScript "" in 0 für Sie konvertieren, aber es ist eine schlechte Codierung der Praxis, da sie den Code schwer macht, Folgen.

0

Um zu wissen, ob ein String leer ist oder nicht, können Sie die folgenden Anweisungen verwenden können:

  • !$(selector).val().length
  • $(selector).val().length === 0
  • (Da eine Stringlänge wird nie negativ

    0

    In JavaScript funktionieren String Objekt haben nicht len() Funktion, stattdessen haben sie length Eigentum.

    Verbrauch:

    var myString = "Hello"; 
    console.log(myString.length); // returns 5 
    
    Verwandte Themen