如果表单输入中存在任何错误/过滤的单词,则显示警报



我正在尝试摆脱通过我的网站收到的垃圾邮件。

我有一个禁用单词列表,每行格式一个。现在我想实现一些东西,如果表单输入中存在任何禁止的单词并阻止表单提交,则可以显示警报。我该怎么做?

这是我尝试过的代码,但失败了。我不知道如何将每行单词或短语与输入数据相匹配。

.HTML

<form method="post" action="/sendmessage.php">
<input type="text" id="name" name="name" />
<input type="text" id="email" name="email" />
<input type="text" id="subject" name="subject" />
<input type="textarea" id="message" name="message" />
<input type="submit" id="submit" name="submit" value="Send Message" />
</form>

JavaScript

<script type="text/javascript">
$(function() {
    $("#submit").on("click",function() {
        var name = $("input:text[name='name']").val();
        var email = $("input:text[name='email']").val();
        var subject = $("input:text[name='subject']").val();
        var message = $("input#message").val();
            var badwords = (abc // first bad word, followed by a carriage return
                            bcd // second bad word, followed by a carriage return
                            cdf // third bad word, followed by a carriage return
                            ...
                            the bad phrase // bad phrase, followed by a carriage return
                            another bad phrase // another bad phrase, followed by a carriage return
                            ...
                            xyz
                            );
        /* I am not sure what to do from now on */ 
                if (name || email || subject || message ) {
                    alert("Your Message Contains Bad Words, Please Remove Them Before Proceeding");
                    return false;
                }
        /* I am not sure what to do */ 
    });
});
</script>

请帮忙

她的是解决方案:

.HTML:

<form method="post" action="/sendmessage.php">
<input type="text" id="name" name="name" />
<input type="text" id="email" name="email" />
<input type="text" id="subject" name="subject" />
<input type="textarea" id="message" name="message" />
<input type="button" id="submit" name="submit" value="Send Message" />
</form>

.JS:

$(function() {
$("#submit").on("click",function() {
    var name = $("input:text[name='name']").val();
    var email = $("input:text[name='email']").val();
    var subject = $("input:text[name='subject']").val();
    var message = $("input#message").val();
        var badwords = ["abc", "bca", "hai hello"];
    /* do this */ 
        if($.inArray(name, badwords) !==-1 || $.inArray(email, badwords) !==-1 || $.inArray(subject, badwords) !==-1 || $.inArray(message, badwords) !==-1)
            {
                alert("Your Message Contains Bad Words, Please Remove Them Before Proceeding");
                return false;
            }
});
});

JSFiddle:

http://jsfiddle.net/bittu4u4ever/8gF8k/

要自动将这些带有换行符的单词转换为数组:

var words = "abcnbcanhai hello";
var badwordsarray = words.split("n")
  if($.inArray(name, badwords) !==-1 || $.inArray(email, badwords) !==-1 || $.inArray(subject, badwords) !==-1 || $.inArray(message, badwords) !==-1) {
        alert("Your inputs contain Bad Words, Please Remove Them Before Proceeding");
                    return false;
      } 

是否有一个版本可以检查坏词是否存在于整个字符串中?例:var 坏词 ="kill";输入用法:杀手找到前三个字符,但禁止使用?

如果你有这样的例子,会认真地帮助我亲切问候

最新更新