jQuery验证错误消息放置

jQuery验证错误消息放置,jquery,validation,errorplacement,Jquery,Validation,Errorplacement,好的,我使用jQuery验证插件检查一个简单表单上的错误。除了错误的位置,一切都正常。我试图将错误消息放在包含错误的输入之后的SPAN元素中。出于某种原因,下面的代码将错误消息放在一个似乎是全新的LABEL元素中。知道我做错了什么吗 我的html <form action="" id="contact" method="POST"> <p> <label for="name">Name:</label>

好的,我使用jQuery验证插件检查一个简单表单上的错误。除了错误的位置,一切都正常。我试图将错误消息放在包含错误的输入之后的SPAN元素中。出于某种原因,下面的代码将错误消息放在一个似乎是全新的LABEL元素中。知道我做错了什么吗

我的html

    <form action="" id="contact" method="POST">
       <p>
         <label for="name">Name:</label>
         <input type="text" name="name" id="name" class="text proper"/><span class="errMsg"></span>
       </p>
       <p>
         <label for="email">* Email:</label>
         <input type="text" name="email" id="email" class="required email text"/><span class="errMsg"></span>
       </p>
       <p>
         <label for="extra">*Question:</label>
         <textarea name="onlyText" id="onlyText" class=""></textarea><span class="errMsg"></span>
       </p>

       <button type="submit" id="send">Send Now</button>
       <div id="results"></div>
    </form>


姓名:

*电邮:

*问题:

立即发送
我的jQuery

    <script>
      jQuery(document).ready(function($){           
        $.validator.addMethod("regex",function(value, element, regexp) {
         var check = false;
         var re = new RegExp(regexp);
         return this.optional(element) || re.test(value);
        },
          "No special Characters allowed here. Use only upper and lowercase letters (A through Z; a through z), numbers and punctuation marks (. , ; ? ' ' \" -  ~ ! @ $ % ^ & * (     ) _ + / < > { } )"
        );
        $("#contact").validate({
         rules: {
            onlyText:{
              required: true,
              maxlength: 8000,
              regex: /^[0-9A-Za-z\s`~!@$%^&*()+{}|;'",.<>\/?\\-]+$/
            },
            name:{
              required: false,
              maxlength: 75,
              regex: /^[0-9A-Za-z\s`~!@$%^&*()+{}|;'",.<>\/?\\-]+$/
           }
         } , 
          errorPlacement: function(error, element) {
          error.appendTo( element.next() );  //* THIS IS WHERE I AM HAVING TROUBLE WITH
     });
     });
   </script>

jQuery(文档).ready(函数($){
$.validator.addMethod(“regex”,函数(值,元素,regexp){
var检查=假;
var re=新的RegExp(RegExp);
返回此.optional(element)| | re.test(value);
},
“此处不允许使用特殊字符。仅使用大小写字母(A到Z;A到Z)、数字和标点符号(,;?”“\”-~!@$%^&*()。+/<>{})”
);
$(“#联系人”)。验证({
规则:{
onlyText:{
要求:正确,
最大长度:8000,
正则表达式:/^[0-9A-Za-z\s`~!@$%^&*(+{}}|“,.\/?\-]+$/
},
姓名:{
必填项:false,
最大长度:75,
正则表达式:/^[0-9A-Za-z\s`~!@$%^&*(+{}}|“,.\/?\-]+$/
}
} , 
errorPlacement:函数(错误,元素){
error.appendTo(element.next());//*这就是我遇到问题的地方
});
});

jQuery验证插件()提供了一个选项,可以指定要用于错误消息的标记:

errorElement: "span"

如果不指定此选项,
validate()
将默认为
标签

您可以避免麻烦,使用
errorElement
errorClass
选项让插件为您添加正确的元素:

$("#contact").validate({
    errorElement: 'span',
    errorClass: 'errMsg',
    rules: {
            onlyText:{
              required: true,
              maxlength: 8000,
              regex: /^[0-9A-Za-z\s`~!@$%^&*()+{}|;'",.<>\/?\\-]+$/
            },
            name:{
              required: false,
              maxlength: 75,
              regex: /^[0-9A-Za-z\s`~!@$%^&*()+{}|;'",.<>\/?\\-]+$/
           }
         } 
    });
$(“#联系人”)。验证({
errorElement:'span',
errorClass:'errMsg',
规则:{
onlyText:{
要求:正确,
最大长度:8000,
正则表达式:/^[0-9A-Za-z\s`~!@$%^&*(+{}}|“,.\/?\-]+$/
},
姓名:{
必填项:false,
最大长度:75,
正则表达式:/^[0-9A-Za-z\s`~!@$%^&*(+{}}|“,.\/?\-]+$/
}
} 
});

您的javascript中有一些错误,因此我尝试在这里进行一些清理:非常感谢。您不知道我一直在努力解决这个问题多久了!@Austin不客气,如果这个答案对您有帮助,请不要忘记投票/接受它