Javascript 当要求继续表单提交时,“表单发送”按钮将不会验证表单输入文本字段

Javascript 当要求继续表单提交时,“表单发送”按钮将不会验证表单输入文本字段,javascript,html,forms,Javascript,Html,Forms,我的网页上有一个表单,例如,它有一个邮政编码文本字段,如果用户没有键入正确的邮政编码,表单将显示一个弹出窗口,说明邮政编码无效。不过,当用户点击submit时,我希望它显示一个确认弹出窗口,询问他们是否真的想发送表单。这会干扰输入文本字段验证(即邮政编码验证程序),最终根本不会验证文本字段。感谢您的帮助。谢谢 HTML: <html> <head> <script> function validate()

我的网页上有一个表单,例如,它有一个邮政编码文本字段,如果用户没有键入正确的邮政编码,表单将显示一个弹出窗口,说明邮政编码无效。不过,当用户点击submit时,我希望它显示一个确认弹出窗口,询问他们是否真的想发送表单。这会干扰输入文本字段验证(即邮政编码验证程序),最终根本不会验证文本字段。感谢您的帮助。谢谢

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>

函数验证()
{
var myform=document.getElementById(“form1”);
myform.fname.style.backgroundColor=“白色”;
myform.lname.style.backgroundColor=“白色”;
myform.address.style.backgroundColor=“白色”;
myform.city.style.backgroundColor=“白色”;
myform.provstate.style.backgroundColor=“白色”;
myform.country.style.backgroundColor=“白色”;
myform.postalzip.style.backgroundColor=“白色”;
log(“表单对象:+myform”);
如果(myform.fname.value==“”)
{
警报(“名字必须有值”);
myform.fname.focus();
myform.fname.style.backgroundColor=“红色”;
返回false;
}
如果(myform.lname.value==“”)
{
警报(“姓氏必须有值”);
myform.lname.focus();
返回false;
}
如果(myform.address.value==“”)
{
警报(“地址必须有值”);
myform.address.focus();
返回false;
}
如果(myform.postalzip.value==“”)
{
警报(“邮政编码必须有值”);
myform.postalzip.focus();
返回false;
}
其他的
{
//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))
{
警报(“邮政编码/邮政编码格式无效”);
myform.postalzip.focus();
返回false;
}
}
返回true;
}
名字:
姓氏:
地址:
城市:
省/州:
国家:
邮政编码:
快速修复:

<input type="submit" onclick="return (validate() && confirm('Do you really want to continue?'))" value="Send" />

您的链接已断开:(.看起来您没有调用
validate()
在发布的代码片段中……除非我遗漏了什么,否则我看不到您在哪里实际调用了验证函数。从我所看到的,这里最简单的事情是为两个onclick事件创建两个唯一的函数。然后,在函数内部处理confirm(当确认返回值时,您可以根据返回值执行进一步的操作)。