2016-09-05 1 views
1

Ich habe ein Formular eingerichtet und eine Javascript-Datei (wie unten gezeigt), die ich die Eingabe validieren und dann auf eine andere Website (index.html) umleiten möchte. Die Validierung funktioniert einwandfrei, aber ich kann nicht herausfinden, wie das Formular auf die gewünschte Seite umgeleitet wird, anstatt nur die Post-Rückgabe anzuzeigen. Das Formular wird in eine PHP-Datei geschrieben (auf die ich nicht zugreifen kann), und ich möchte, dass diese Datei in index.html angezeigt wird.Umleiten nach Formular Senden

Form:

<form name="form" action="register.php" onsubmit="return validateInput()" method="POST" > 
     <fieldset> 
     <legend>Personal Details</legend> 
     <label>Name</label><br> 
     <input type="text" name="name"><br><br> 
     <label>Email</label><br> 
     <input type="text" name="email"><br><br> 
     <label>Date of Birth</label><br> 
     <input type="text" name="dob"><br> 
     </fieldset> 
     <input type="submit" name="submit"> <input type="reset" name="reset"> 
    </form> 

JavaScript-Datei:

function validateInput() { 

    var check = document.forms["form"].elements; 

    for (var i = 0; i < check.length; i++) { 
     var test = check[i]; 

     if (test.type === "text" && test.value === "") { 
      displayMsg("Please fill out all fields" +test.innerHTML); 
      return false; 
     } 
     if (test.type === "date") { 
      var pattern = /^\d{1,2}\/\d{1,2}\/\d{4}$/; 

      if (!test.value.match(pattern)) { 
       displayMsg("Please enter a valid date of birth"); 
       return false; 
      } 
     } 
     else if (test.name === "email") { 
      var re = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/; 

      if (!test.value.match(re)) { 
       displayMsg("Please enter a valid email address"); 
       return false; 
      } 
     } 
    } 
    return true; 
} 

function displayMsg(msg) { 
    var ele = document.getElementById("msg"); 
    ele.className = "show"; 
    ele.innerHTML = "<p>" + msg + "</p>"; 
} 

window.onload = function() { 
    var check = document.forms["form"].elements; 
    for (var i = 0; i < check.length; i++) { 
     check[i].addEventListener('click', function() { 
      var ele = document.getElementById("msg"); 

      if(ele.className != "hide") { 
       ele.className = "hide"; 
      } 
     }); 
    } 
} 
+0

nicht in der Lage, Ihr HTML-Formular zu finden. ohne, wie weiß ich welchen Funktionsaufruf? – yash

+0

@yash Sorry, ich werde mit mehr Code bearbeiten – Brittany

Antwort

2

Statt return true; Sie den Speicherort festlegen können, die Sie mit window.location.href wollen und verwenden return false; die Standard Vorlage des verhindern Form:

function validateInput() { 
    .... 
    window.location.href = 'index.html'; 
    return false; 
} 
+0

Ich habe das versucht, und es hat leider nicht funktioniert. Es zeigt mir immer noch die Post-Rückkehr von der PHP-Datei. – Brittany

+0

Sind Sie sicher, dass Sie dort keine JavaScript-Fehler haben? Hast du die Konsole überprüft? – Dekel

+0

Sorry, ja, machte die ganze Zeit einen dummen Fehler. Danke, wird als richtige Antwort markieren. – Brittany

Verwandte Themen