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

Javascript 用于禁用按钮的jQuery电子邮件验证脚本,javascript,jquery,html,css,validation,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(){

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

<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>

$(#fes email”)。关于(“更改”,函数(){
如果($(“#fes电子邮件”)。长度>0){
$(“#fes email”).attr(“禁用”、“禁用”);
}否则{
$(“#fes email”).keyup(函数(){
var email=$(“#fes email”).val();
如果(电子邮件!=0)
{
if(isValidEmailAddress(电子邮件))
{
$(“fes提交”).attr(“已启用”、“已启用”);
}否则{
$(“fes提交”).attr(“禁用”、“禁用”);
}
}
});
}
});
函数isValidEmailAddress(电子邮件地址){
(2)目前(以下以下::::::::[[[[w-[w-[[w-[[[w-[[[w-[[[w-[[[w-]+)*)))除了除了除了上述两个新的RegExp((((((“[[[[[w-\w-\w-\s][[[[[[3-\s-\s[s-\s[s-[s][[[[[s][[[3]]]]]的)的)的)号号号))))))))在目前,((((((((((()))))目前((([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[|[0-9]{1,2}\)((25[0-5]{2[0-4][0-9]{2}{0-9]{1,2}\){2}(25[0-5]{2[0-4][0-9]{1[0-9]{2}{1,2}}})/);
返回模式.test(emailAddress);
}
我的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='>'>

不确定问题出在哪里?

更改
if($(“#txtEvent”).length>0)


然后查看按钮是否已禁用

您可以尝试以下操作

$("#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(函数($){
$(#fes电子邮件”)。在(“更改键控”,函数()上{
var email=$(this.val();
$(“#fes submit”).prop(“disabled”,email.length==0 | |!isValidEmailAddress(email));
});
函数isValidEmailAddress(电子邮件地址){
(2)目前(以下以下::::::::[[[[w-[w-[[w-[[[w-[[[w-[[[w-[[[w-]+)*)))除了除了除了上述两个新的RegExp((((((“[[[[[w-\w-\w-\s][[[[[[3-\s-\s[s-\s[s-[s][[[[[s][[[3]]]]]的)的)的)号号号))))))))在目前,((((((((((()))))目前((([[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[|[0-9]{1,2}\)((25[0-5]{2[0-4][0-9]{2}{0-9]{1,2}\){2}(25[0-5]{2[0-4][0-9]{1[0-9]{2}{1,2}}})/);
返回模式.test(emailAddress);
}
})


remove value=''从html中删除请在这里工作。但当我将它添加到代码中时,它似乎无法正常工作。可能有什么干扰吗?@Boris可能有多种原因。。。是否确实正在调用事件处理程序。。在
var email=$(this.val())之前添加一个
alert
console.log()
语句
查看函数是否正在运行called@Boris你能在
$(“#fes submit”).prop(“#fes submit”).prop('disabled')
行后提醒
$(“#fes submit”).prop(“disabled”,email.length==0 | |!isValidEmailAddress(email))的值吗有时它是有效的。有时候不是。当我输入一些文本时,它将被禁用。但当新加载页面时,您可以单击它。我用html禁用它吗?此外,当我按enter键时,表单最终被提交,即使按钮被禁用。@Boris您也必须在表单提交处理程序中执行相同的验证。。。另一个解决方案是在页面加载时禁用该按钮(如果在某些情况下预先填充电子邮件,则该按钮将不起作用)。。。
$("#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);
}