Jsp jQuery自定义验证-添加错误对象

Jsp jQuery自定义验证-添加错误对象,jsp,jquery,jquery-plugins,Jsp,Jquery,Jquery Plugins,下面的函数工作得非常好。目前,如果用户名不可用,我会向已注册的邮件电子邮件ID发出警报-请登录 我的查询是,我是否可以将上述消息添加到validation error对象中,以便由默认的errorPlacement函数选择它,然后在jsp上显示错误消息,这与其他validation failuer通常的方式相同 <script type="text/javascript"> $(document).ready(function(){ var fo

下面的函数工作得非常好。目前,如果用户名不可用,我会向已注册的邮件电子邮件ID发出警报-请登录

我的查询是,我是否可以将上述消息添加到validation error对象中,以便由默认的errorPlacement函数选择它,然后在jsp上显示错误消息,这与其他validation failuer通常的方式相同

    <script type="text/javascript">
     $(document).ready(function(){

         var formAction = '';
         var userAvailable = '';

         $("#myForm").validate({

             onfocusout:false,
             onkeyup:false,
                 onclick:false,

             rules:{                            
                 j_username:{
                     required: true,
                     email: true,
                     minlength: 8                           
                 }                          
             },
             messages: {                            
                 j_username:{           
                     required: "Please enter a valid email address", 
                     minlength: "Please enter a valid email address"
                 }
             }, 
             // the errorPlacement has to take the table layout into account 
             errorPlacement: function(error, element) {
                 if(element.is(":radio") )
                     error.appendTo( element.parent().next());          
                 else
                     error.appendTo( element.parent());
             }, 
             submitHandler: function(form){

                 if($('#accountNo').is(':checked')){
                     var emailId = $('#userName').val();                
                     isUserNameAvailable(emailId);
                     if(userAvailable=="1"){
                         alert("Email ID already registered - please log in");
                         return false;                  
                     }
                     var loginAction = '/MyApp/articles/add.html';
                     $('#myForm').attr('method','POST');
                     $('#myForm').attr('action',loginAction);
                     form.submit();
                 }
                 else{
                     var loginAction = '/MyApp/j_spring_security_check';    
                     $('#myForm').attr('method','POST');
                     $('#myForm').attr('action',loginAction);
                     form.submit();
                 }         
             }
         });

         //Ajax call to check userName availability returns '1' if userName is available
         function isUserNameAvailable(id) {
           $.ajax({
               url: "isUserAvailable.html",
               data: ({emailId : id}),
               async: false,
               success: function(data) { 
                   userAvailable = data;             
               }          
           });       
         }  
     });

     </script>
好的,我用adMethod实现了这一点。。代码如下

     <script type="text/javascript">
     $(document).ready(function(){

var formAction = '';
var response;

$.validator.addMethod("uniqueUserName", function(value, element) {
    var id = $('#userName').val();
    if($('#accountNo').is(':checked')){
      $.ajax({
          url: "isUserAvailable.html",
          data: ({emailId : id}),
          async: false,           
           success: function(msg)
           {
              //If username exists, set response to true
              response = ( msg == '1' ) ? true : false;
           }
        });
   return response;
    }
    else{
        return true;
    }

}, "Username is Already Taken");


$("#myForm").validate({

    onfocusout:false,
    onkeyup:false,
    onclick:false,

    rules:{                         
        j_username:{
            required: true,
            email: true,
            minlength: 8,
            uniqueUserName: true
        }                           
    },
    messages: {                             
        j_username:{            
            required: "Please enter a valid email address", 
            minlength: "Please enter a valid email address",
            uniqueUserName: "Email ID already registered - please log in"
        }
    }, 
    // the errorPlacement has to take the table layout into account 
    errorPlacement: function(error, element) {
        if(element.is(":radio") )
            error.appendTo( element.parent().next());           
        else
            error.appendTo( element.parent());
    }, 
    submitHandler: function(form){

        if($('#accountNo').is(':checked')){             
            var loginAction = '/MyApp/articles/add.html';
            $('#myForm').attr('method','POST');
            $('#myForm').attr('action',loginAction);
            form.submit();
        }
        else{
            var loginAction = '/MyApp/j_spring_security_check'; 
            $('#myForm').attr('method','POST');
            $('#myForm').attr('action',loginAction);
            form.submit();
        }          
    }
});
})


使用jqueryajax进行用户名可用性检查现在对我有效。我已经发布了帮助他人的代码。
     <script type="text/javascript">
     $(document).ready(function(){

var formAction = '';
var response;

$.validator.addMethod("uniqueUserName", function(value, element) {
    var id = $('#userName').val();
    if($('#accountNo').is(':checked')){
      $.ajax({
          url: "isUserAvailable.html",
          data: ({emailId : id}),
          async: false,           
           success: function(msg)
           {
              //If username exists, set response to true
              response = ( msg == '1' ) ? true : false;
           }
        });
   return response;
    }
    else{
        return true;
    }

}, "Username is Already Taken");


$("#myForm").validate({

    onfocusout:false,
    onkeyup:false,
    onclick:false,

    rules:{                         
        j_username:{
            required: true,
            email: true,
            minlength: 8,
            uniqueUserName: true
        }                           
    },
    messages: {                             
        j_username:{            
            required: "Please enter a valid email address", 
            minlength: "Please enter a valid email address",
            uniqueUserName: "Email ID already registered - please log in"
        }
    }, 
    // the errorPlacement has to take the table layout into account 
    errorPlacement: function(error, element) {
        if(element.is(":radio") )
            error.appendTo( element.parent().next());           
        else
            error.appendTo( element.parent());
    }, 
    submitHandler: function(form){

        if($('#accountNo').is(':checked')){             
            var loginAction = '/MyApp/articles/add.html';
            $('#myForm').attr('method','POST');
            $('#myForm').attr('action',loginAction);
            form.submit();
        }
        else{
            var loginAction = '/MyApp/j_spring_security_check'; 
            $('#myForm').attr('method','POST');
            $('#myForm').attr('action',loginAction);
            form.submit();
        }          
    }
});