我希望在表单的文本区域中只输入字母它的工作很好与输入字段,不能验证文本区是可能的与jquery验证?或者是另一种选择2)这会阻止恶意代码输入(如xss.js)
<form action="" method="POST" enctype="multipart/form-data" name="messageForm">
<p>name of sender:
<input class="input" name="sender" id="sender" value="" size="13"
maxlength="13" dir="ltr" autocomplete="on" type="text" height="20" minlength="3" required><br>
<p>name of receiver:
<input class="input" name="receiver" id="receiver" value="" size="13"
maxlength="13" dir="ltr" autocomplete="on" type="text" height="20" minlength="3" required><br>
<p>Message: <br>
<textarea name="message" id="message" type="text" value="" rows="5" cols="30" dir="ltr" required></textarea><br>
<input value="Submit" name="button" alt="submit" onsubmit="" border="0" type="submit" align="absmiddle"></p>
</form>
<script>
$("#messageForm").validate();
</script>
javascript $().ready(function () {
$("#submit").validate({
rules: {
sender: {
required: true,
minlength: 3,
lettersonly: true
},
receiver: {
required: true,
minlength: 3,
lettersonly: true
},
message: {
required: true,
minlength: 5,
maxlength: 30,
lettersonly: true
},
},
messages: {
sender: {required:"Please enter your name"},
receiver:{required: "Please enter receiver name up to 3 characters"},
message: {required: "Enter your message 3-20 characters"},
},
});
});
当它在chrome上运行时给出一个错误的最后一部分:意外标识符
您呼叫.validate()
两次…
这里……
<script>
$("#messageForm").validate();
</script>
这里……
$().ready(function () {
$("#submit").validate({...
.validate()
方法只用于初始化form
上的插件,不能被调用两次。所有后续调用总是被忽略。
然而,在您的情况下,它被忽略了,因为您已经将.validate()
的第二个实例附加到$("#submit")
,其中您的表单的id
不是submit
,您的form
甚至没有id
。您只能将.validate()
方法附加到您想要验证的form
,即name="messageForm"
。
你只需要这个…
$(document).ready(function () {
$("[name='messageForm']").validate({
rules: {
sender: {
required: true,
minlength: 3,
lettersonly: true
...
正如在注释中已经说过的,不再推荐使用$().ready(function () {...
。使用$(document).ready(function () {...
代替。
演示:jsfiddle.net/unapufhp/