我使用jQuery Validation Plugin并且我需要阻止某些垃圾邮件地址停止发送经常性的潜在客户。
尝试谷歌并阅读插件文档,但我是JS的初学者,所以我无法找到我需要的任何东西。
P.S。不是说无效的电子邮件地址,而是经常有效的电子邮件地址。
答案 0 :(得分:0)
请注意,您应始终仔细检查用户输入服务器端。恶意用户将始终能够绕过客户端设置的规则。此外,通过在JavaScript中执行此操作,您将公开您的禁止电子邮件列表,并使黑客更容易看到他们应该做些什么来绕过您的规则。
话虽如此,您可以加载jQuery Validate's Additional methods plugin并使用addMethod创建自己的规则:
// Banning domains
var bannedDomains = ["spam.com", "junk.com"];
$.validator.addMethod('domainNotBanned', function(value, elem, param) {
var domain = value.split('@')[1];
return bannedDomains.indexOf(domain) < 0;
}, 'Emails from this domain are not allowed.');
// Banning specific addresses
var bannedEmails = ["mean@hacker.com", "kim.kardashian@gmail.com"];
$.validator.addMethod('emailNotBanned', function(value, elem, param) {
return bannedEmails.indexOf(value) < 0;
}, 'This email address is banned.');
// Applying these rules
$('#myForm').validate({
rules: {
email: {
required: true,
email: true,
domainNotBanned: true,
emailNotBanned: true
}
}
});
// Just for the demo
$('#myForm').on('submit', function(e) {
e.preventDefault();
alert("This email is valid.");
return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/additional-methods.min.js"></script>
<form id="myForm" name="myForm" action="#" method="POST"> <style>#email-error { display: block; color: red; }</style>
<label for="email">Email: </label>
<input id="email" name="email" type="email" minlength="6"/><br>
<input type="submit" value="Submit">
</form>
答案 1 :(得分:-1)
您可以在数据库中创建一个表,以保存您不想要的电子邮件和域,并在执行下一步之前检查它们。