javascript - 使用 onsubmit 通过 JavaScript 验证表单

标签 javascript forms dom-events

我有一个包含现有表单的网站,该网站将电子邮件地址提交给第三方网站 (example.com)。现在我想在使用 JavaScript 提交表单之前验证电子邮件输入字段。

我的 JavaScript

function isValidEmailAddress(emailAddress) {
    var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
    return pattern.test(emailAddress);
}

function formCheck() {
    // Fetch email-value
  sEmail = document.myForm.recipientEmail.value ;
    // value empty?
    if (sEmail == 0)
        {
            alert('Enter Email-Address.');
            return false;
        }
    else
        {
            // value valid?
            if (!isValidEmailAddress(sEmail))
                {
                    alert('Enter valid Email-Address.');
                    return false;
                }
            else
                {
                    return true;
                }
        }
}   

现有表单标签

<form name="myForm" action="http://example.com" method="post" onsubmit="return formCheck();">

现有的电子邮件输入字段

<input type="text" class="form-text" name="email" id="recipientEmail">

现有提交按钮

<input type="image" src="some_pic.gif" alt="OK" id="submit_form" onclick="document.onlineForm.submit();" value="send" name="submit_button"> 

现在,只要我点击提交按钮,表单就会提交,而我的 JavaScript 似乎被忽略了。我做错了什么?

最佳答案

当您通过直接调用“submit()”提交表单时,就像您的按钮所做的那样,不会调用“onsubmit”处理程序。

您可以让提交按钮调用不同的函数:

function doSubmit() {
  if (formCheck()) document.myForm.submit();
}

关于javascript - 使用 onsubmit 通过 JavaScript 验证表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2381840/

相关文章:

javascript - 如何捕获客户端缺失的资源?

javascript - 如何在javascript中将数组值与 'for'循环的结果进行比较

javascript - 在多边形中添加一些区域 [JavaScript::Google Map API v3]

javascript - 如何编辑 contentEditable div 中的链接

javascript - 检查字段是否包含数据并且其中一个是数字

python - 使用 python、BeautifulSoup、mechanize 设置 HTML textarea 内容(没有表单,只有 div)

javascript - Jquery 验证多个选项卡,一次验证一个?

JavaScript this.form 返回意外的形式

javascript - JavaScript 中的自定义事件与简单地调用常规函数有何不同?

javascript - Z-index渲染链接不可点击