Как заставить его пройти через 3 проверки, прежде чем отправлять действие формы на адрес - PullRequest
0 голосов
/ 30 мая 2019

Мой код в настоящее время подтверждает, что имя / адрес электронной почты и почтовый индекс действительны, прежде чем можно будет отправлять, когда НЕТ адреса, на который предполагается перейти в форме action = "". Но когда я ставлю адрес, он должен перейти к нему, чтобы полностью пропустить проверку и просто отправить все, пустое или не пустое.

Попытка изменить положение действия формы, но на самом деле понятия не имею.

<html>
<head>
<title>Online Food Delivery Form</title>
<h1>Online Food Delivery Form</h1>
</head>
<body>
<form action="http://www.cs.tut.fi/cgi-bin/run/~jkorpela/echo.cgi"   
method="get"  onsubmit="return validation();">
Name* : <input type="text" name="name" id="name">
<br />
<br />
Email* :    <input type="email" name="email" id="email">
<br />
<br />
Postcode* : <input type="text" name="postcode" id="postcode" size="10">

<input type="reset" value="Reset"></button>
<input type="submit" name="submit" value="Submit"/>
</form>
<div id="eresult" style="color:red;"></div>
<script type="text/javascript">

function validation(){
var name = document.getElementById('name').value;
var email = document.getElementById('email').value;
var postcode = document.getElementById('postcode').value;
if(name=='' || postcode=='' || email==''){
document.getElementById("eresult").innerHTML = "Name, Email and Postcode 
are required.";
return false;
}
else if(name.length<3){
document.getElementById("eresult").innerHTML = "Name must be more than 3 
characters.";
return false;
}
else if(postcode.length<4){
document.getElementById("eresult").innerHTML = "Postcode must be atleast 
4 characters.";
return false;
}
else {
return true;
}
}
</script>
</body>
</html>

Ожидается, что код подтвердит правильность адреса электронной почты / имени и почтового индекса перед отправкой информации на указанный сайт. Но все происходит наоборот.

1 Ответ

0 голосов
/ 30 мая 2019

При проверке сообщения об ошибках представляют собой многострочные строки

if(name=='' || postcode=='' || email==''){
document.getElementById("eresult").innerHTML = "Name, Email and Postcode 
are required.";
return false;
}
else if(name.length<3){
document.getElementById("eresult").innerHTML = "Name must be more than 3 
characters.";
return false;
}
else if(postcode.length<4){
document.getElementById("eresult").innerHTML = "Postcode must be atleast 
4 characters.";
return false;
}

Если вы откроете консоль разработчика (обычно F12), вы увидите ошибку, вызванную недействительным или неожиданным токеном.Измените эти сообщения об ошибках так, чтобы они помещались в одну строку, чтобы исправить эту ошибку:

if(name=='' || postcode=='' || email==''){
document.getElementById("eresult").innerHTML = "Name, Email and Postcode are required.";
return false;
}
else if(name.length<3){
document.getElementById("eresult").innerHTML = "Name must be more than 3 characters.";
return false;
}
else if(postcode.length<4){
document.getElementById("eresult").innerHTML = "Postcode must be atleast 4 characters.";
return false;
}

Кроме того, у вас есть закрывающий тег </button>, но нет открывающего тега!Удалите этот тег из строки <input type="reset" value="Reset"></button>.

Надеюсь, это поможет!

...