2016-05-03 17 views
1
function validateForm() { 
    if ($('#date').val() == "") { 
     $('#date').css("border","1px solid #FF0000"); 
     $('#date').focus(); 
     return false; 
    } 
    else if ($('#time').val() == "") { 
     $('#time').css("border","1px solid #FF0000"); 
     $('#time').focus(); 
     return false 
    } 
    else if ($('#date').val() != "" && $('#time').val() != "") { 
     var send = $.post("appointment.php",{ 
      package  : $('#package').val(), 
      first_name : $('#first_name').val(), 
      last_name : $('#last_name').val(), 
      tel   : $('#tel').val(), 
      email  : $('#email').val(), 
      date  : $('#date').val(), 
      time  : $('#time').val(), 
     }); 

     send.success(function (result) { 
      if (result == 'TRUE') { 
       return true; 
      } 
      else if (result == 'FALSE') { 
       return false; 
      } 
     }); 

     send.error(function() { 
      alert("ajax error"); 
      return false; 
     }); 

    } 
    else { 
     return true; 
    } 

} 

<form name="step2" id="step2" action="./step3.php" onSubmit="return validateForm();" method="post"> 
... 
</form> 

Auch wenn alles falsch zurückgibt; fahren Sie trotzdem mit der Seite step3.php fort. Ich hatte so viel Zeit versucht, dasselbe Ergebnis.JavaScript-Formular zurück, aber nicht richtig funktioniert

Meine Termine.php geben nur Echo "TRUE" oder "FALSE" zurück.

Irgendeine Idee, was ist falsch in meiner Codierung?

Vielen Dank.

+0

Haben Sie die Ausbreitung der Veranstaltung zu stoppen versucht? [Sehen Sie es sich an] (https://api.jquery.com/event.stoppropagation/) –

+0

Versuchen Sie, diese Funktion 'return validateForm();' im Submit Button Click Event aufzurufen. –

Antwort

0

Dieses Problem tritt auf, weil validateForm nicht auf Ihren asynchronen Anruf ($.post) wartet, bevor Sie zurückkehren.

Ein Weg, um das zu erreichen, was Sie suchen, ist immer return false. dann auf Erfolg, reichen Sie manuell ein, das die onSubmit Funktion nicht aufruft.

function validateForm() { 

    if ($('#date').val() == "") { 
    $('#date').css("border", "1px solid #FF0000"); 
    $('#date').focus(); 

    } else if ($('#time').val() == "") { 
    $('#time').css("border", "1px solid #FF0000"); 
    $('#time').focus(); 

    } else { 

    var send = $.post("appointment.php", { 
     package: $('#package').val(), 
     first_name: $('#first_name').val(), 
     last_name: $('#last_name').val(), 
     tel: $('#tel').val(), 
     email: $('#email').val(), 
     date: $('#date').val(), 
     time: $('#time').val(), 
    }); 

    send.success(function(result) { 

     if (result == 'TRUE') { 
     $('#step2').get(0).submit(); 
     } 

    }); 

    } 

    return false; 
} 
+0

Diese Arbeit. Danke Kumpel. – Bentley