簡體   English   中英

jQuery Ajax從表單發送數據不起作用

[英]JQuery Ajax send data from form not working

我的腳本應阻止頁面刷新或重定向,但是當我單擊“提交”按鈕時,它將重定向我。

來自JavaScript控制台的錯誤消息

未捕獲的TypeError:$(...)。val(...)。len不是函數

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.

});

嘗試使用.length而不是.len() https://api.jquery.com/length/

val()返回一個字符串。 字符串沒有.len()函數。 另外,由於您正在將其與另一個字符串進行比較,因此不需要獲取長度,只需使用以下命令即可:

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

如果要檢查長度,可以使用.length來獲取。 但是,您應該將其與0而不是與""

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

$('#fName').val().length != ""在技​​術上是可行的,因為JavaScript會為您將""轉換為0 ,但這是一種不好的編碼習慣,因為它使代碼難以遵循。

要知道一個字符串是否為空,可以使用以下語句:

  • $(selector).val() !== ''
  • !$(selector).val().length
  • $(selector).val().length === 0

(由於字符串長度永遠不會為負,因此最后兩個相等)

關於重定向事實,請查看stopPropagation和stopImmediatePropagation函數

https://api.jquery.com/event.stopimmediatepropagation/ https://api.jquery.com/event.stoppropagation/

“ len()”不是javascript函數,您可以將代碼修改為:

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

並且會工作

在JavaScript中, String對象沒有len()函數,而是具有length屬性。

用法:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM