在jQuery中,禁用键盘功能中的“提交”按钮

时间:2019-01-23 20:24:33

标签: jquery forms validation

我需要在输入中搜索某些电子邮件客户端,如果电子邮件客户端匹配,则需要禁用提交表单的按钮。

.HasMaxLenght

似乎不起作用的那条线是这样的:

 $('#Email').keyup(function(e){
    var email =  $('#Email');
    var emailValue = $('#Email').val();
    var invalidEmails = ['gmail.com', 'yahoo.com', 'hotmail.com', 'yahoo.com', 'yahoo.co.in', 'aol.com', 'abc.com']

    for(var i = 0; i <= invalidEmails.length; i++){
      if( emailValue.toLowerCase().indexOf( invalidEmails[i]) >= 0){
        $('.corporativo-invalid').show();
        email.toggleClass('invalid-email');
        $('#register-button').prop("disabled",true);
        //e.preventDefault();
      } else {
        $('#register-button').prop("disabled",false);
      }
    }
  });

令我困惑的是,如果我使用相同的功能在按钮上执行click事件,而不是执行keyup事件,那么这样做有效吗?此示例确实有效:

$('#register-button').prop("disabled",true);

但是我需要使用keyup事件。

HTML:

$('#register-button').click(function(e){
    var email =  $('#Email');
    var emailValue = $('#Email').val();
    var invalidEmails = ['gmail.com', 'yahoo.com', 'hotmail.com', 'yahoo.com', 'yahoo.co.in', 'aol.com', 'abc.com']

    for(var i = 0; i <= invalidEmails.length; i++){
      if( emailValue.toLowerCase().indexOf( invalidEmails[i]) >= 0){
        $('.corporativo-invalid').show();
        email.toggleClass('invalid-email')
        $('#register-button').prop("disabled",true);
        e.preventDefault();
      } else {
        $('#register-button').prop("disabled",false);
      }
    }
  });

1 个答案:

答案 0 :(得分:0)

尝试将属性type =“ submit”更改为type =“ button”

if( emailValue.toLowerCase().indexOf( invalidEmails[i]) >= 0){
    $('.corporativo-invalid').show();
    email.toggleClass('invalid-email')
    $('#register-button').attr("type","button");
  } else {
    $('#register-button').attr("type","submit");
  }