在jquery验证插件添加方法中调用函数

时间:2013-04-29 05:03:16

标签: javascript jquery html ajax

我的要求是使用Ajax检查应用程序名称是否已被使用。我实现了这些,我计划在jquery验证中添加这些东西。我添加了使用add方法,但如果响应是false则显示消息

  

应用名称存在

错误消息。如果响应为true,它也会显示错误消息。

这是我的代码:

$(document).ready(function ()
          {
              function isAppNameExists() {
                  document.getElementById('imgLoad').style.display = "inline-table";
                  var appName =$("#txtAppName").val();//document.getElementById("txtAppName").value;

                    var tenantID =1;//document.getElementById("txttenantId").value;
                    if(window.XMLHttpRequest){
                        xmlhttp=new XMLHttpRequest();
                    } else {
                        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    xmlhttp.onreadystatechange=function() {
                        if(xmlhttp.readyState==4 && xmlhttp.status==200){
                            if(xmlhttp.responseText == "true"){                 // App name already used 
                                    document.getElementById('imgLoad').style.display = "none";   
                                 return false;
                            } else {
                                document.getElementById('imgLoad').style.display = "none";   
                                return true;
                        }
                      }
                    }
                    xmlhttp.open("GET","ApplicationController?appNameCheck=createApp&appName="+appName+"&tenantId="+tenantID+"",true);
                    xmlhttp.send();
                  }


            $.validator.addMethod("appNameExistsValidation", function() {
                    return isAppNameExists();
            }, "Application name already exists");



              $('#storeAppCreation').validate( 
              {
                  rules:
                  {
                         appNameExistsValidation:true

                  }
             }

});

1 个答案:

答案 0 :(得分:1)

您可以使用验证框架

提供的remote选项
$(document).ready(function() {
    var tenantID =1;//document.getElementById("txttenantId").value;
    $('#storeAppCreation').validate({
        rules : {
            txtAppName: {
                remote : {
                    url : "ApplicationController",
                    type : "GET",
                    data : {
                        appNameCheck : 'createApp',
                        appName : function() {
                            return $("#txtAppName").val()
                        },
                        tenantId : tenantID
                    }
                }
            }

        }
    })

});