我正在创建一个评论板并通过Javascript我试图实现一个脚本,如果它有一个不受欢迎的单词,将阻止用户提交一个段落。我已经在线查找并努力寻找任何示例。这是我到目前为止,但不确定我是否应该使用index.of
的index.php
<div class="askComment">
<h2>Submit new comment</h2>
<!--comment form -->
<form id="form" method="post">
<!-- need to supply post id with hidden fild -->
<input type="hidden" name="postid" value="<?php echo $post; ?>">
<input type="hidden" name="type" value="A">
<p>Hello <strong><?php echo $fname; ?></strong> what do you have to say</p>
<input type="hidden" name="fname" id="comment-name" value="<?php echo $fname; ?>" >
<input type="hidden" name="userid" id="comment-mail" value="<?php echo $UserId; ?>" >
<p>Your comment *</p>
<textarea name="comment" id="comment" cols="30" rows="10" placeholder="Type your comment here...." ></textarea>
<div id="error"></div>
<input type="submit" id="submit-comment" name="submit" value="Submit Comment">
</form>
</div>
mod_comment.php
$(document).ready(function () {
document.getElementById("submit-comment").disabled = true;
var swear = new Array();
swear[0] = "jelly";
swear[1] = "trumpet";
swear[2] = "chocolate";
$("#comment").change(function () {
var comment = $("#comment").val();
if (comment.indexOf('????') === -1) {
$("#error").html('<font color="red">Please rewrite <strong>bad</strong> word found.</font>');
} else {
document.getElementById("loginsubmit").disabled = false;
}
});
});
答案 0 :(得分:1)
一种可能的解决方案(类似于您的,相同的逻辑,只需要很少的更改/添加)。
<强> http://jsfiddle.net/pK7DK/ 强>
$("#submit-comment").attr('disabled', true);
var swear = new Array();
swear[0] = "jelly";
swear[1] = "trumpet";
swear[2] = "chocolate";
$("#comment").on("keyup", function () {
var comment = $("#comment").val();
word = comment.split(' ');
for (i = 0; i < word.length; i++) {
worda = word[i].trim();
worda = worda.replace(/\.|,|!|:| |;|\?|\r?\n/g, ''); // bad word + one of chars = bad word
console.log(worda);
if ($.inArray(worda, swear) != -1) {
$("#error").html('<font color="red">Please rewrite <strong>bad</strong> word found.</font>');
$("#submit-comment").attr('disabled', true);
break;
} else {
$("#error").html('');
$("#submit-comment").attr('disabled', false);
}
}
});
我宁愿使用'keyup'事件,因此用户在输入时会收到错误消息。但是 - 如上所述,这很容易被覆盖,服务器端检查是必须的。
答案 1 :(得分:0)
看看这个:http://www.w3schools.com/jsref/jsref_search.asp(搜索数组内的数组);
它可能不是最佳选择,但它将是您代码的开始。
编辑:一个更好的选择(可能不是最好的选项)可能是将注释字符串分隔成一个数组并在两个数组之间进行交集,这里是一个解释如何在js中进行数组之间交叉的问题{{3 }}