0
我使用javascript來驗證提交之前的表單。當我在字段上檢測到錯誤時,表單仍然發佈。如何防止錯誤提交?即使當我在一個字段中檢測到錯誤時,表單帖子
這裏是我的形式:
<form onSubmit="return validateForm()" action="send.php" method="post" name="formulaire">
Prénom: <input type="text" name="prenom"><p id="valider_prenom"></p><br>
Nom: <input type="text" name="nom"><p id="valider_nom"></p><br>
Email: <input type="text" name="email"><p id="valider_email"></p><br>
Code postal: <input type="text" name="codepostal"><p id="valider_codepostal"></p><br>
<INPUT type="submit" value="Envoyer">
</form>
Here's my javascript function:
<script type="text/javascript">
function validateForm()
{
var prenom = document.forms["formulaire"]["prenom"].value;
var nom = document.forms["formulaire"]["nom"].value;
var email = document.forms["formulaire"]["email"].value;
var codepostal = document.forms["formulaire"]["codepostal"].value;
var erreur = false;
// Pour la validation du format de email
var atpos = email.indexOf("@");
var dotpos = email.lastIndexOf(".");
if (prenom == null || prenom == "")
{
document.getElementById('valider_prenom').innerHTML = '* Requis';
erreur = true;
}
if (nom == null || nom == "")
{
document.getElementById('valider_nom').innerHTML = '* Requis';
erreur = true;
}
if (email == null || email == "")
{
document.getElementById('valider_email').innerHTML = '* Requis';
erreur = true;
}
else if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= email.length)
{
document.getElementById('valider_email').innerHTML = '* Adresse incorrect';
erreur = true;
}
if (codepostal == null || codepostal == "")
{
document.getElementById('valider_codepotal').innerHTML = '* Requis';
erreur = true;
}
if (erreur){return false;}
}
</script>
親愛的Charley14,另一件事是你的代碼工作正常。但是在validateForm()中,id「valider_codepotal」應該是「valider_codepostal」。我已經執行你的代碼的工作。請從瀏覽器清除緩存並嘗試。如果有任何問題讓我知道。 – John