【问题标题】:Validating E-Mail address using JavaScript or JQuery使用 JavaScript 或 JQuery 验证电子邮件地址
【发布时间】:2016-04-17 13:20:43
【问题描述】:

我必须使用 JS 或 JQ 验证电子邮件地址。 现在我正在使用 JS 但无法将文本框的值作为 JS 的参数传递。我希望这在onchange中实现。 我发现解决方案只使用一个按钮来验证我不想要的。

这是 HTML 代码。

            <div class="form-group">
                <label class="control-label">Father's E-Mail Address</label>
                <input maxlength="30" pattern=".{1,50}"  onchange="validateEmail(document.getElementById('txtFatherEmail').value);" title="Input Invalid"  type="text" required="required" class="form-control" placeholder="Enter Father's E-Mail Address" id="txtFatherEmail" runat="server"/>
            </div>

这是我用过的JS。

    function validateEmail(email) {               
        var emailReg = 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);
        var valid = emailReg.test(email);

        if (!valid) {
            alert("False");
        } else {
            alert("True");
        }
    }

我也想知道是否有更好的方法来做到这一点。

【问题讨论】:

  • 我想知道runat="server" 是否在干扰。您可以考虑将其删除以进行测试。
  • 我不确定,但我不会在 onchange 上运行它,只在模糊上运行它,以提高用户界面效率...
  • @softwareplay — change 事件仅在元素失去焦点时触发,因此即使元素没有被更改也会触发它。
  • @softwareplay — 不,如果元素已更改,则当焦点丢失时会触发更改事件。输入事件在每次输入修改时触发。您似乎将标准 DOM 与 jQuery 混淆了,并将它们倒退了..

标签: javascript jquery html validation onchange


【解决方案1】:

如果我理解正确,您想在输入时验证输入。
为此,您可以使用 onkeyup 事件。

<div class="form-group">
    <label class="control-label">Father's E-Mail Address</label>
    <input maxlength="30" pattern=".{1,50}"  onkeyup="validateEmail(this.value);" title="Input Invalid"  type="text" required="required" class="form-control" placeholder="Enter Father's E-Mail Address" id="txtFatherEmail" runat="server"/>
</div>

【讨论】:

    【解决方案2】:

    为什么要使用带有“值”的 getElementById?你不应该使用你的 jquery 语法吗?记住 jquery 元素不是 javasript don 元素。也许这就是诀窍......

    【讨论】:

    • jQuery 不在标签之外的问题中的任何地方使用。 getElementById 是一个标准的 DOM 方法,它返回一个 HTML Element 对象,该对象有一个 value 属性。
    【解决方案3】:
                            function isvalid(x){
                                regexp1 = /@/g
                                gmail = /gmail.com/g
                                hotmail = /hotmail.com/g
                                if(regexp1.test(x) == true){
                                    if(x.match(regexp1).length == 1){
                                        x = x.split("@")
                                        if(gmail.test(x[1]) == true){
                                            if(x[1].match(gmail).length == 1 && x[1].length == 9){
                                                alert("ok valid")
    
                                            }else{
                                                alert("not valid")
    
                                            }
                                        }else if(hotmail.test(x[1]) == true){
                                            if(x[1].match(hotmail).length == 1 && x[1].length == 11){
                                                alert("ok valid")
                                            }else{
                                                alert("not valid")
                                            }
                                        }else{
                                                alert("no mail")
                                        }
                                    }else{
                                        alert("too much @")
                                    }
                                }else{
                                    alert("no @")
                                }
                            }
    

    这个功能是 jquery 邮件检查功能,它只查找 gmail 和 hotmail,如果你只想检查来自 hot 和 gmail 的电子邮件,它是可靠的功能

    【讨论】:

      猜你喜欢
      • 2018-03-13
      • 2014-03-19
      • 2018-05-30
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      相关资源
      最近更新 更多