У меня есть форма с 4 полями
Имя (обязательно)
Фамилия (обязательно)
Email (обязательно)
телефон (необязательно) (если пользователь вводит какой-либо номер, он должен подтверждать номер или нет) ниже приведена форма, которую я имею
<form name="myForm" method="post" onsubmit="return validate();">
First Name : <input type="text" name="fname" id="id_fname"> <br>
Last Name : <input type="text" name="lname" id="id_lname"> <br>
Email : <input type="text" name="email" id="id_email"> <br>
Phone : <input type="text" name="phone" id="id_phone"> <br>
<input type="submit" value="send">
</form>
А ниже - код JavaScript
<script type="text/javascript">
function validate()
{
if (document.myForm.id_fname.value == '') {
alert("Enter First Name");
return false;}
else if(document.myForm.id_lname.value == '') {
alert("Enter Last Name");
return false; }
// теперь здесь проверка электронной почты не работает
else if(document.myForm.id_email.value == '' || document.myForm.id_email.value != ''){
var x = document.myForm.id_email.value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
alert("Not a valid e-mail address");
return false;
else
return true;
}
// это для номера телефона, если это поле пустое без проверки, если это поле не пустое, оно должно содержать только цифры
else if(document.myForm.id_phone != '') {
var ValidChars = "0123456789";
var IsNumber=true;
var Char;
sText = document.form1.testfield2_phone.value ;
for (i = 0; i < sText.length && IsNumber == true; i++)
{
Char = sText.charAt(i);
if (ValidChars.indexOf(Char) == -1)
{
IsNumber = false;
}
}
if(IsNumber == false)
alert("Enter valid Number");
return false;
else
return true;
}
else
return true;
document.myForm.submit();
}
</script>
Проверка электронной почты и проверка телефона не работают, когда я комментирую эти электронную почту и телефон, я получаю подтверждение для имени и фамилии ... есть ли ошибка в коде для проверки.
И когда отправляется форма, когда мы обновляем, то данные повторно отправляются снова, как этого избежать.