2011-07-09 72 views
2

我有一个脚本,让我们的用户提交电子邮件。但是我想限制一些用户发布一个特定的世界,一旦这个词被使用,表单就不能被提交(返回false;)并且会输出一个警报。使用jQuery搜索特定单词?

那么我该如何在jQuery中进行单词检查?

实施例:

1)期望世界被阻断:披萨

2)用户将这个词在textarea的

3)用户点击提交,但他旁边用这个词他的其他词语如此形式不提交

如果jQuery不能这样做,但Javascript可以,那么我也欢迎一个Javascript解决方案。

+3

比萨世界?我想住在那里! – mpen

回答

2

概念上,当按下提交按钮时,你会得到textarea的内容。你会搜索它的词比萨饼(一个简单的正则表达式),然后如果你找到它,你会设置一个cookie,禁止他们提交一段时间(你决定一段时间)。然后,在提交按钮上,您将检查cookie是否存在,如果存在,您将禁止提交功能。你可以用jQuery或纯JavaScript /浏览器来做到这一点 - 这是个人偏好。

这里有一小片的代码:

var o = document.getElementById("myTextArea"); 
if (o.value.search(/\bPizza\b/i) != -1) { 
    alert("Pizza not allowed"); 
    // set cookie preventing future access 
} 
-1

你应该做到以下几点

,如果你提前知道所有的关键词,你可以在它们存储在一个javascript对象和写入的逻辑。

1)你应该已经存储在搜索一些数据库中的所有关键字或使

2)使用jQuery” Ajax和让与该数据库的请求,并检查它是否已经存在。

http://api.jquery.com/jQuery.ajax/

3)阿贾克斯成功回调,因为你可以决定你想要做

$.ajax({ 
    url: "test.aspx", 
    success: function(){ 
    // this tells you if it exists or not , the alert the user 
    } 
}); 
1

以文本字符串返回,它被放置在形式和执行的indexOf什么它。

http://www.w3schools.com/jsref/jsref_indexof.asp

var str = "My pizza is better than yours. Dang right it's better than yours" 
if str.indexOf("pizza") > -1 
    // do something cool 
else 
    // do something different 
+2

http://w3fools.com/ – stecb

+2

请参阅本文档:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/indexOf(而不是w3schools)。 –

+0

Tru那。我很抱歉连接到w3schools。没有意识到它有一个代表有多糟糕。 – WattsInABox

1

这里有一个完整的例子:

<html> 
<head> 
<title>Example Form</title> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
<script type="text/javascript"> 
function checkForm() { 
    var text = document.test_form.word.value; 
    if (text.indexOf("Pizza") > -1) { 
     alert("error"); 
     return false; 
    } 
    return true; 
} 

</script> 
</head> 
<body> 
<form action="blah.cgi" name="test_form" onSubmit="return checkForm()"> 
<input id="mytext" type="text" name="word" /> 
<input type="submit" value="Submit" /> 
</form> 

<body> 
</html> 

基本上,这里发生了什么是表单提交时,它调用javascript函数checkForm ,它检查文本是否包含单词比萨(仅在此时大写),如果是,则返回false,从而阻止提交表单。