У меня есть код проверки, написанный для проверки некоторых записей в форме, я пытаюсь вызвать их с помощью команды onsubmit, но когда я использую форму, кажется, что только первая функция, вызываемая в строке, работает, и как только она была успешно проверена, остальные функции игнорируются и форма просто представляет? Вот мой код:Формы onsubmit проблемы?
<script>
function validateFamily()
{
var family=document.getElementById('family');
if (family.value=="")
{
alert("Family name must be filled out");
return false;
}
else if (document.getElementById('family').value.length > 35)
{
alert("Family name cannot be more than 35 characters");
return false;
}
}
function validateGiven()
{
var given=document.getElementById('given');
if (given.value=="")
{
alert("Given name must be filled out");
return false;
}
else if (document.getElementById('given').value.length > 35)
{
alert("Given name cannot be more than 35 characters");
return false;
}
}
function validDate()
{
var chkdate = document.getElementById("dob").value
if(document.getElementById("dob").value == "")
{
alert("Please enter Date of Birth")
return false;
}
else if(!chkdate.match(/^(0[1-9]|[12][0-9]|3[01])[\- \/.](?:(0[1-9]|1[012])[\- \/.](200)[0-4]{1})$/))
{
alert('The entered date is an incorrect format');
return false;
}
}
function validateMaleFemale()
{
var radios = document.getElementsByName('malefemale');
for (var i = 0; i < radios.length; i++)
{
if (radios[i].checked)
{
return true;
}
};
alert ('You must choose male or female');
return false;
}
function validateAddress()
{
var address = document.getElementById('address');
var stringa = document.getElementById('address').value;
if (address.value=="")
{
alert("Address must be filled out");
return false;
}
else if (document.getElementById('address').value.length > 150)
{
alert("Address cannot be more than 150 characters");
return false;
}
else if (/[^a-zA-Z0-9\-\/]/.test(stringa))
{
alert("Address can only contain alphanumeric, hypehns(-) and backslash's(/)")
return false;
}
}
function validateParent()
{
var parent = document.getElementById('parenta');
var stringb = document.getElementById('parenta').value;
if (parent.value=="")
{
alert("Parent/Carer name must be filled out");
return false;
}
else if (document.getElementById('parenta').value.length > 60)
{
alert("Parent/Carer name can not be more than 60 characters");
return false;
}
else if (/[^a-zA-Z\-\/]/.test(stringb))
{
alert("Parent/Carer can only contain alphabetic and hypehns(-)")
return false;
}
}
function validateWork()
{
var num1 = document.getElementById('workno').value;
if (num1 !== "" && !num1.match(/\(\d{2}\)\d{8}/))
{
alert('That is not correct telephone number format');
return false;
}
}
function validateHome()
{
var num2 = document.getElementById('homeno').value;
if (num2 !== "" && !num2.match(/\(\d{2}\)\d{8}/))
{
alert('That is not correct telephone number format');
return false;
}
}
function validateMob()
{
var num3 = document.getElementById('mob').value;
if(num3 == "")
{
alert('Please enter a mobile number');
return false;
}
else if (num3 !== "" && !num3.match(/\(\d{3}\)\d{8}/))
{
alert('That is not correct mobile number format');
return false;
}
}
</script>
<form name="eoiform" method="POST" action="<?php echo $_SERVER["PHP_SELF"];?>" id="eoi" onsubmit="return !!(validateFamily() && validDate() && validateAddress() && validateParent() && validateMaleFemale() && validateMob() && validateHome() && validateWork());">
Так, например, функция validateFamily()
будет работать нормально, и предупредить меня, если поле пусто, но после того, как что-то было введено в поле на другие функции игнорируются и форма представляет. Может кто-нибудь, пожалуйста, посоветуйте мне, почему это происходит или как это исправить?
Вам необходимо показать код подтверждения – CodingIntrigue
, почему вам нужно это '!!' после возвращения? –
preventDefault должен сделать трюк, убедитесь, что вы тоже вернули false. –