javascript - 用于禁用按钮的 jQuery 电子邮件验证脚本

标签 javascript jquery html css validation

这是我的脚本。但它似乎没有用。它不会禁用按钮或阻止表单提交。

<script>
$("#fes-email").on("change", function() {

    if ($("#fes-email").length > 0) {

        $("#fes-email").attr("disabled", "disabled");

    } else {

        $("#fes-email").keyup(function(){

            var email = $("#fes-email").val();

            if(email != 0)
            {
                if(isValidEmailAddress(email))
                {
                    $("#fes-submit").attr("enabled", "enabled");

                } else {
                    $("#fes-submit").attr("disabled", "disabled");  
                }
            }
        });
    }
});

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);
}
</script>

我的 HTML:

<input type='email' id="fes-email" name='fes-email' class='fes-input animate' value='' placeholder='E-mail'>
        <input type='submit' id='fes-submit' class='fes-submit animate' value='>'>

不确定是什么问题?

最佳答案

你可以尝试类似的东西

$("#fes-email").on("change keyup", function () {
    var email = $(this).val();
    $("#fes-submit").prop("disabled", email.length == 0 || !isValidEmailAddress(email));
});

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);
}

演示

jQuery(function($) {
  $("#fes-email").on("change keyup", function() {
    var email = $(this).val();
    $("#fes-submit").prop("disabled", email.length == 0 || !isValidEmailAddress(email));
  });

  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);
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type='email' id="fes-email" name='fes-email' class='fes-input animate' value='' placeholder='E-mail' />
<input type='submit' id='fes-submit' class='fes-submit animate' value='>' />

关于javascript - 用于禁用按钮的 jQuery 电子邮件验证脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28291042/

相关文章:

html - 如何垂直对齐多个图像 css?

html - CSS 只获取文本

javascript - 将数据直接加载到选择框angularjs

javascript - iframe 中的 document.activeElement 在 IE 标准模式下显示未指定的错误

javascript - 将 JavaScript getter/setter 添加到 native 不可配置的属性

javascript - 使用可见性属性隐藏 DIV 直到页面加载

jquery - prop() 和 attr() 在 IE11 中不起作用?

javascript - jquery lavalamp 风格在 codepen 上工作,但在 jsfiddle 上不工作

javascript - 更改此元素的颜色

html - 如何更改 Bootstrap 3 中一行的颜色?