如何检测是否在输入中输入特定字符串(电子邮件域)以从按钮添加/删除属性/类

时间:2017-02-06 19:46:05

标签: javascript jquery html

所以我知道如何从提交按钮中删除/添加类/属性,但是我需要能够根据输入的内容将其应用于按钮。

方案是这样,用户输入他们的电子邮件地址,但如果它在特定域,ex:xxxx@troopers.gov我然后希望能够应用/删除类和属性来自提交按钮,因为这是一个他们不应该输入注册的域名。

我过去做了一些类似的验证,并在jQuery .val(),indexOf等中尝试了一些不同的方法。但似乎仍然无法使其正常工作。

我试过像

这样的东西
var badDomain = 'troopers.gov';

然后

if (!$('#input').val() === badDomain) {
doStuff();
}

但它似乎并没有把我带到任何地方。

我想我可以在不使用RegEx的情况下做到这一点(我没有太多经验)

很高兴能够为案例负责......而且我不介意解决方案是jQuery,还是纯JS ......出于学习目的,我会很高兴看到我如何可以做到这两点......

4 个答案:

答案 0 :(得分:1)

所以这可以做你想要的,通过将任何类型的字段输入到小写字段然后与给定的坏字符串数组进行比较。只要输入字段模糊,它就会检查并打开或关闭提交。

查看代码,查看一些用于样本使用的错误地址。

var badDomains = [
  "troppers.com",
  "fooBarBaz.org",
  "myReallyUselessDomainName.com",
  "a.net"
]
$(function(){
  $("#email").on("blur", function(){
    var addressBad = false;
    var thisEmail = $(this).val().toLowerCase();
    for (var i=0; i<badDomains.length; i++){
      if (thisEmail.includes(badDomains[i])){
        addressBad = true;
      }
    }
    if (addressBad) {
      console.log("bad address!")
      $(".disabledButton").attr('disabled', "disabled");
    } else {
      console.log("not a bad address!");
      $(".disabledButton").removeAttr("disabled");
    }
  })
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <label for="email">Email:</label>
  <input type="text" name="email" id="email" />
  <input class="disabledButton" type="submit" disabled />
</form>

答案 1 :(得分:0)

简单的解决方法:

var email = document.getElementById('email');
var checkEmail = document.getElementById('checkEmail');

checkEmail.onclick = function() {
	if ((email.value).includes('@troopers.gov')) alert('This email address cannot be used!');
}
<input id="email">
<button id="checkEmail">Check Email</button>

虽然有很多方法。

答案 2 :(得分:0)

您可以将正则表达式用于此目的。

HTML:

def main():

    favoritethingsList = ["1  Film Production", "2  Photography", "3  Programming", "4  Mountain Biking", "5  Surfing"]

    print(favoritethingsList[0])
    print(favoritethingsList[1])
    print(favoritethingsList[2])
    print(favoritethingsList[3])
    print(favoritethingsList[4])

main()

CSS:

<input type="text" id="InputTest" />

<button id="TestBtn" type="button">
    Validate
</button>

<p>
    Valid
</p>

JS:

.valid{
  background-color:green;
}

.invalid{
  background-color: red;
}

这是JSFiddle。基本上,如果用户在文本框中键入的内容与表达式匹配,则背景颜色变为红色,但如果它不匹配,则背景颜色变为绿色。

如果有帮助,请告诉我。

答案 3 :(得分:0)

您可以将以下Regex用于相关型号的电子邮件属性,以便接受包含&#39; abc.com&#39;后缀:

[RegularExpression("^[a-zA-Z0-9_@./#&+-]+(\\.[a-zA-Z0-9_@./#&+-]+)*@abc.com$", 
    ErrorMessage = "Please enter an email with 'abc.com' suffix")]

希望这会有所帮助......