У меня есть форма на моей веб-странице на www.thetotempole.ca и, например, у нее есть текстовое поле почтового индекса и почтового индекса, и если пользователь не вводит правильный почтовый индекс, форма отображает всплывающее сообщение о том, что zip/почтовый индекс недействителен. Хотя, когда пользователь нажимает submit, я хочу, чтобы он отображал подтверждение, спрашивающее, действительно ли они хотят отправить форму. Это мешает проверке входного текстового поля (IE - почтовому шифру почтовым индексом) каким-то образом, и заканчивает тем, что вообще не проверяет текстовые поля. Любая помощь приветствуется. Спасибо!!
HTML:
<html>
<head>
<script>
function validate()
{
var myform = document.getElementById("form1");
myform.fname.style.backgroundColor = "white";
myform.lname.style.backgroundColor = "white";
myform.address.style.backgroundColor = "white";
myform.city.style.backgroundColor = "white";
myform.provstate.style.backgroundColor = "white";
myform.country.style.backgroundColor = "white";
myform.postalzip.style.backgroundColor = "white";
console.log("form object: " + myform);
if (myform.fname.value == "")
{
alert("First Name must have a value");
myform.fname.focus();
myform.fname.style.backgroundColor = "red";
return false;
}
if (myform.lname.value == "")
{
alert("Last Name must have a value");
myform.lname.focus();
return false;
}
if (myform.address.value == "")
{
alert("Address must have a value");
myform.address.focus();
return false;
}
if (myform.postalzip.value == "")
{
alert("Postal/Zip Code must have a value");
myform.postalzip.focus();
return false;
}
else
{
//var regex = new RegExp();
var regex = /^([a-z]\d[a-z]\s?\d[a-z]\d)|(\d{5}(\s?\d{4})?)$/i;
myform.postalzip.value.toUpperCase();
if (!regex.test(myform.postalzip.value))
{
alert("Postal/Zip Code has invalid format");
myform.postalzip.focus();
return false;
}
}
return true;
}
</script>
</head>
<body>
<form id="form1">
First Name:<input type="text" name="fname" /><br />
Last Name:<input type="text" name="lname" /><br />
Address:<input type="text" name="address" /><br />
City:<input type="text" name="city" /><br />
Province/State:<input type="text" name="provstate" /><br />
Country:<input type="text" name="country" /><br />
Postal/Zip Code:<input style="text-transform: uppercase;" type="text" name="postalzip" /><br />
<input type="submit" onclick="return confirm('Do you really want to continue?')" value="Send" />
<input type="reset" onclick="return confirm('Do you really want to reset?')" value="Reset" />
</form>
</body>
</html>
Быстрое исправление:
<input type="submit" onclick="return (validate() && confirm('Do you really want to continue?'))" value="Send" />
validate()
во фрагменте кода ...