使用jQuery验证文本区域



我希望在表单的文本区域中只输入字母它的工作很好与输入字段,不能验证文本区是可能的与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/

相关内容

  • 没有找到相关文章

最新更新