jquery 校验

来源:互联网 发布:淘宝打印机 怎么设置 编辑:程序博客网 时间:2024/05/01 05:24
       
<script type="text/javascript" src="../js/jquery.js"></script>
<script type="text/javascript" src="../js/jquery.validate.js"></script>
<script type="text/javascript" src="../js/ex.jquery.validate.js"></script>
//表单字段校验
        $("#addIepg").validate({
            rules: {
                "iepgSiteVO.name":{
                            required: true,//必填字段
                            regexMatch: "^[a-zA-Z0-9_]+$",//只能含字母、数字和下划线
                            checkNameIepg:true,//ajax 校验$.validator.addMethod("checkNameIepg",function(name){
                            minlength:4,
                            maxlength:30//名称的长度必须为4-30个字符位
                    }
            },//校验不通过显示的提示信息
            messages: {        
                "iepgSiteVO.name":{
                            required: '<s:text name="msg.portalMS.sitemgr.name.required" />',
                            regexMatch: '<s:text name="msg.portalMS.sitemgr.name.validate" />',
                            minlength: '<s:text name="msg.portalMS.sitemgr.name.length" />',
                            maxlength: '<s:text name="msg.portalMS.sitemgr.name.length" />'
                    }
            },
            errorPlacement: function(error, element) {
                
                error.appendTo( element.parent() );
            }   
        });    
            
    });
    //ajax校验名称
    $.validator.addMethod("checkNameIepg",function(name){
        var result = true;
        $.ajax({
             cache:false,   
             async:false,           
             type:"POST",
                url: "../Site/checkNameIepg.action",    
                data: "iepgSiteVO.name="+name,
             success: function(checkFlag){
               if(checkFlag=='false'){
                  result = false;
                }else{
                  result = true;
                }     
               //恢复提交按键功能
               document.getElementById("showButton").disabled=false;
             } ,
               error: function(){
               //恢复提交按键功能
               document.getElementById("showButton").disabled=false;
              }        
               });
               return result;  
    },'<font color="red"><s:text name="msg.portalMS.iepg.siteName.existed" /></font>');


sitemanage.xml
    <action name="checkNameIepg" class="springSiteMgrAction" method="checkNameIepg">
        <result type="json">
         <param name="root">checkFlag</param>                 
        </result>  
    </action>
SiteMgrAction.java        
    private Boolean checkFlag = Boolean.valueOf(true);
        /**
     * Ajax校验站点名称是否已存在
     * @return
     */
    public String checkNameIepg()
    {
        try
        {
            FormBeanUtil.stripStringProperty(iepgSiteVO);
            int rowCountName = siteService.findSameNameIepgCount(iepgSiteVO);
            if (rowCountName > 0)
            {
                this.checkFlag = Boolean.valueOf(false);
            }
        }
        catch (Exception e)
        {
            return "error";
        }
        return "success";

    }




<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="page" uri="/WEB-INF/tlds/paginated.tld"%>
<%@ include file="../common/language.jsp"  %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title><s:text name="msg.portalMS.siteMgr.list"/>——<s:text name="msg.portalMS.siteMgr.add"/></title>
<link href="../style/base.css" rel="stylesheet" type="text/css" />
<%@ include file="../common/commonJS.jsp" %>
<script type="text/javascript" src="../js/Calendar/WdatePicker.js"></script>
<script type="text/javascript" src="../js/jquery.js"></script>
<script type="text/javascript" src="../jsCBB/jquery.js"></script>
<script type="text/javascript" src="../js/dialogShow.js"></script>
<script type="text/javascript" src="../js/jquery.validate.js"></script>
<script type="text/javascript" src="../js/ex.jquery.validate.js"></script>
<script type="text/javascript" src="../js/ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../js/ext/ext-all.js"></script>

<script type="text/javascript">

    //防重复提交按键功能
    var timerID;
    function activethis(){  //1秒后新增按钮恢复  可用
         timerID=setTimeout('document.getElementById("showButton").disabled=false',1000);
         alert("timerID"+timerID);
         $("#showButton").submit();//提交表单
    }

    jQuery(document).ready(function() {
        //初始化的时候 同步系统隐藏 系统名显示
        $("#tr_system").hide();
        $("#siteName" ).focus();

        ////ajax提交表单
        $.validator.setDefaults({   
              submitHandler: function(form) {
        
              //取消由 setTimeout() 方法设置的 timeout
              clearTimeout(timerID);
              //提交表单后新增按钮置灰 不可用
              document.getElementById("showButton").disabled=true;
              var system="";
              $('input[type="checkbox"][name="systems"]:checked').each(function(){    
                  system=system +","+ $(this).val();    
                  alert("system"+system);
              });
            Ext.Ajax.request({
                  timeout: 100000,//超时时间100秒
                  url:'../Site/checkSystem.action',
                  params:{'id':system},
                  success: function(_response, action) {
                      if(_response.responseText=='ok'){
                            showConfirmAndCancel('<s:text name="msg.portalMS.page.message.tip"/>','<s:text name="msg.portalMS.sitemgr.businessSystem.submit.confirm" />',form);
                          }
                      else if(_response.responseText=='null'){
                          showText('<s:text name="msg.portalMS.page.message.tip"/>','<s:text name="msg.portalMS.sitemgr.businessSystem.noSelected" />',400,200,0,true);
                      }
                      else{
                            showText('<s:text name="msg.portalMS.page.message.tip"/>','<s:text name="msg.portalMS.sitemgr.businessSystem.error" />',400,200,0,true);
                          }
            
                    //恢复提交按键功能
                    document.getElementById("showButton").disabled=false;
                  },
                  failure: function(_response, action) {
                      var reqst=_response.status;        // 根据返回的状态码值判断是否超时
                      if(reqst=='-1'){                  // 超时的状态码为 -1
                          showText('<s:text name="msg.portalMS.page.message.tip"/>','<s:text name="msg.portalMS.sitemgr.businessSystem.timeout" />',400,200,0,true);
                        }
                      else
                      {
                          showText('<s:text name="msg.portalMS.page.message.tip"/>','<s:text name="msg.portalMS.failured.message.tip" />',400,200,0,true);
                      }    
                    //恢复提交按键功能
                    document.getElementById("showButton").disabled=false;                      
                     }
                  });    
            }   
        });
        //表单字段校验
        $("#addIepg").validate({
            rules: {
                "iepgSiteVO.name":{
                            required: true,//必填字段
                            regexMatch: "^[a-zA-Z0-9_]+$",//只能含字母、数字和下划线
                            checkNameIepg:true,//ajax 校验$.validator.addMethod("checkNameIepg",function(name){
                            minlength:4,
                            maxlength:30//名称的长度必须为4-30个字符位
                    },
                "iepgSiteVO.alias":{
                        required: true,
                        regexMatch: "^([\\w\\s\u4e00-\u9fa5]+)$",
                        checkAliasIepg:true,
                        minlength:2,
                        maxlength:30
                },
                "iepgSiteVO.context":{
                    required: true,
                    regexMatch: "^[a-zA-Z0-9_]+$",
                    checkContext:true,
                    minlength:1,
                    maxlength:10
                },
                "iepgSiteVO.remark":{
                    required: true,
                    minlength:1,
                    maxlength:50
                }
            },//校验不通过显示的提示信息
            messages: {        
                "iepgSiteVO.name":{
                            required: '<s:text name="msg.portalMS.sitemgr.name.required" />',
                            regexMatch: '<s:text name="msg.portalMS.sitemgr.name.validate" />',
                            minlength: '<s:text name="msg.portalMS.sitemgr.name.length" />',
                            maxlength: '<s:text name="msg.portalMS.sitemgr.name.length" />'
                    },
                "iepgSiteVO.alias":{
                        required: '<s:text name="msg.portalMS.sitemgr.alias.required" />',
                        regexMatch: '<s:text name="msg.portalMS.sitemgr.alias.validate" />',
                        minlength: '<s:text name="msg.portalMS.sitemgr.alias.length" />',
                        maxlength: '<s:text name="msg.portalMS.sitemgr.alias.length" />'
                },
                "iepgSiteVO.context":{
                        required: '<s:text name="msg.portalMS.sitemgr.context.required" />',
                        regexMatch: '<s:text name="msg.portalMS.sitemgr.context.validate" />',
                        minlength: '<s:text name="msg.portalMS.sitemgr.context.length" />',
                        maxlength: '<s:text name="msg.portalMS.sitemgr.context.length" />'
                    },
                "iepgSiteVO.remark":{
                    required: '<s:text name="msg.portalMS.sitemgr.remark.required" />',
                    minlength: '<s:text name="msg.portalMS.sitemgr.remark.length" />',
                    maxlength: '<s:text name="msg.portalMS.sitemgr.remark.length" />'
                }
                
                
            },
            errorPlacement: function(error, element) {
                
                error.appendTo( element.parent() );
            }   
        });    
            
    });

    //ajax校验名称
    $.validator.addMethod("checkNameIepg",function(name){
        var result = true;
        $.ajax({
             cache:false,   
             async:false,           
             type:"POST",
                url: "../Site/checkNameIepg.action",    
                data: "iepgSiteVO.name="+name,
             success: function(checkFlag){
               if(checkFlag=='false'){
                  result = false;
                }else{
                  result = true;
                }     
               //恢复提交按键功能
               document.getElementById("showButton").disabled=false;
             } ,
               error: function(){
               //恢复提交按键功能
               document.getElementById("showButton").disabled=false;
              }        
               });
               return result;  
    },'<font color="red"><s:text name="msg.portalMS.iepg.siteName.existed" /></font>');

    //ajax校验别名
    $.validator.addMethod("checkAliasIepg",function(alias){
        var result = true;
        $.ajax({
             cache:false,   
             async:false,           
             type:"POST",
                url: "../Site/checkAliasIepg.action",    
                data: "iepgSiteVO.alias="+alias,
             success: function(checkFlag){
               if(checkFlag=='false'){
                  result = false;
                }else{
                  result = true;
                }
               //恢复提交按键功能
               document.getElementById("showButton").disabled=false;    
             } ,
             error: function(){
               //恢复提交按键功能
               document.getElementById("showButton").disabled=false;
              }      
               });
               return result;  
    },'<font color="red"><s:text name="msg.portalMS.iepg.siteAlias.existed" /></font>');

    //ajax校验上下文
    $.validator.addMethod("checkContext",function(context){
        var result = true;
        $.ajax({
             cache:false,   
             async:false,           
             type:"POST",
                url: "../Site/checkContext.action",    
                data: "iepgSiteVO.context="+context,
             success: function(checkFlag){
               if(checkFlag=='false'){
                  result = false;
                }else{
                  result = true;
                }
               //恢复提交按键功能
               document.getElementById("showButton").disabled=false;            
             } ,
             error: function(){
               //恢复提交按键功能
               document.getElementById("showButton").disabled=false;
              }      
               });
               return result;  
    },'<font color="red"><s:text name="msg.portalMS.iepg.siteContext.existed" /></font>');
    
    //两个radioButton间的切换(高清、标清)
    function chooseRadio(){
        var radioNameList = document.getElementsByName("iepgSiteVO.videoType");
        if(radioNameList[0].checked){
            return false;
        }else{
            radioNameList[0].checked
            }
         if(radioNameList[1].checked){
            return false;
        }else{
            radioNameList[1].checked
            }
    }
    //返回站点列表
    function queryIepg(){
        var url = "queryIepg.action?queryFlag=true";
        window.location=url;
    }

    //选中业务系统要显示业务系统对应的系统名称
    function changeDisplay(){
           var systemList;
           var id="";
           var isShow=false;
           var div=document.getElementById("businessSys");
           var ckb=document.getElementsByTagName("INPUT");
           var div1=document.getElementById("div_systm");
            var ckb1=document.getElementsByTagName("INPUT");  
           for(i=0;i <ckb.length;i++)
           {   //业务系统
               if(ckb[i].type== "checkbox"&& ckb[i].parentNode==div)  
               //业务系统被勾选
               if(ckb[i].checked)
               {
               alert(id=id+","+ckb[i].id   );
                    id=id+","+ckb[i].id;   
                    isShow=true;
               }
          }    
          if(isShow)
          {   //如果业务系统有值被勾选 则显示  同步系统名称
              $("#tr_system").show();  
              //根据业务系统ID 查询所配置的同步系统
              var url='../Site/readBussinessSystem.action?ts=' + new Date().getTime()+'&id='+id;
              //通过ajax 查询 同步系统
                 $.getJSON(url, null, function(data){        
                 systemList = data.sysList;
                
              //同步系统
              for(j=0;j <ckb1.length;j++)
              {  
                  if(ckb1[j].type== "checkbox"&& ckb1[j].parentNode==div1){
                  //$(ckb1[j]).removeAttr( "checked" );
                  $(ckb1[j]).hide();
                  var t =$(ckb1[j]).attr('logo');
                        $('#sys'+t).hide();
                        }
              }
              //属于 系统的同步系统则显示
              for(j=0;j <ckb1.length;j++)
              {  
                   if(ckb1[j].type== "checkbox"&& ckb1[j].parentNode==div1)  
                   {
                       for (var q= 0; q < systemList.length; q++)
                             {
                                       if(systemList[q] == ($(ckb1[j]).attr("logo")))
                                       {  
                                           $(ckb1[j]).show();
                                           var t =$(ckb1[j]).attr('logo');
                                        $('#sys'+t).show();
                                       }
                                       
                             }

                       if ($(ckb1[j]).is(":hidden"))
                                   {
                                       $(ckb1[j]).removeAttr( "checked" );
                                   }
                   }
              }
               });
          }
          else
          {//没选中则隐藏  同步系统
               $("#tr_system").hide();
               for(j=0;j <ckb1.length;j++)
                {  if(ckb1[j].type== "checkbox"&& ckb1[j].parentNode==div1){
                       $(ckb1[j]).removeAttr( "checked" );
                    }
                }
              
          }
    }

</script>
</head>

<body>
<s:form action="addIepg" theme="simple" onsubmit="return false;" validate="false" namespace="/Site" >
<div class="r_main">
  <!---导航 --->
  <div class="r_nav">
    <div class="left"><img src="../images/nav_l.gif" width="5" height="29" /></div>
    <div class="ct"><s:text name="msg.portalMS.system.current.position"/><s:text name="msg.portalMS.publishmgr.label.site.manage"/> &gt; <s:text name="msg.portalMS.siteMgr.list"/> &gt; <s:text name="msg.portalMS.siteMgr.add"/></div>
    <div class="right"><img src="../images/nav_r.jpg" width="5" height="29" /></div>
  </div>
  <!---主体 --->
  <div  class="info_tit">
    <div class="left"><s:text name="msg.portalMS.siteMgr.add"/></div>
  </div>
  <div  class="page_tb">
    <table width="100%" border="0" cellpadding="0" cellspacing="0"  class="in_table long">
      <tr>
        <td class="col1 must"><s:text name="msg.portalMS.sitemgr.name"/><s:text name="msg.portalMS.colon.label"/></td>
        <td width="84%">
            <s:textfield name="iepgSiteVO.name" theme="simple" id="siteName"/>
            <s:if test='%{action != "toAdd"}'>
            <s:fielderror fieldName="iepgSiteVO.siteName" cssStyle="color:red" theme="simple"/>
            </s:if>
            <font color='gray'>&nbsp;<s:text name="msg.portalMS.sitemgr.name.validate" /></font>
        </td>
      </tr>
      <tr class="bule">
        <td class="col1 must1"><s:text name="msg.portalMS.sitemgr.aliasName"/><s:text name="msg.portalMS.colon.label"/></td>
        <td width="84%">
            <s:textfield name="iepgSiteVO.alias" theme="simple" id="aliasName"/>
            <s:if test='%{action != "toAdd"}'>
            <s:fielderror fieldName="iepgSiteVO.aliasName" cssStyle="color:red" theme="simple"/>
            </s:if>
            <font color='gray'>&nbsp;<s:text name="msg.portalMS.sitemgr.alias.validate" /></font>
        </td>
      </tr>
      <tr>
        <td class="col1 must"><s:text name="msg.portalMS.resource.videoType"/><s:text name="msg.portalMS.colon.label"/></td>
        <td width="84%">                     <!--  标清  高清-->                                                                                                                           默认值
        <s:radio name="iepgSiteVO.videoType" list="#{'0':getText('msg.portalMS.resource.videoType.0'),'1':getText('msg.portalMS.resource.videoType.1')}" listKey="key" listValue="value" value="0" onclick="chooseRadio()"></s:radio>
            <s:if test='%{action != "toAdd"}'>
            <s:fielderror fieldName="iepgSiteVO.videoType" cssStyle="color:red" theme="simple"/>
            </s:if>
        </td>
      </tr>
     <tr class="blue">
     <td class="col1 must1" valign="middle"><s:text name="msg.portalMS.sitemgr.context.businessSystem"/><s:text name="msg.portalMS.colon.label"/>
     </td>
    
     <td style="background-color:#e9f0f9">
       <div id='businessSys'>
         <s:iterator value="bussinessSystemList" id="bussinessSystem" status="i">
             <input type="checkbox"  name="bussinessSystems" value="<s:property value="#bussinessSystem" />" id="<s:property value="#bussinessSystem"/>"
             onclick="changeDisplay()"/>
             <span><s:property value="#bussinessSystem"/></span>
         </s:iterator>
     </div>
     </td>
     </tr>   
    
     <tr id="tr_system">
     <td class="col1 must2" valign="middle"><s:text name="msg.portalMS.sitemgr.sncy.businessSystem"/><s:text name="msg.portalMS.colon.label"/>
     </td>
     <td>
     <div id="div_systm">
         <s:iterator value="systemsList" id="system" status="i">
           <input type="checkbox" name="systems" value="<s:property value="#system" />" logo="<s:property value="#system"/>"
           /><span id="sys<s:property value="#system"/>"><s:property value="#system"/></span>
         </s:iterator>
     </div>
    </td>
     </tr>
    
      <tr>
        <td class="col1 must2" valign="middle"><s:text name="msg.portalMS.sitemgr.context"/><s:text name="msg.portalMS.colon.label"/></td>
        <td width="84%">
            <s:textfield name="iepgSiteVO.context" theme="simple" id="context"/>
            <s:if test='%{action != "toAdd"}'>
            <s:fielderror fieldName="iepgSiteVO.context" cssStyle="color:red" theme="simple"/>
            </s:if>
            <font color='gray'>&nbsp;<s:text name="msg.portalMS.sitemgr.context.validate" /></font><br/>
            <font color='gray'><s:text name="msg.portalMS.iepg.siteContext.desc" /></font>
        </td>
      </tr>
      <tr class="blue">
        <td width="205" class="col1 must3" valign="middle"><s:text name="msg.portalMS.sitemgr.remark"/><s:text name="msg.portalMS.colon.label"/></td>
        <td width="84%" style="background-color:#e9f0f9">
            <s:textarea name="iepgSiteVO.remark" theme="simple" rows="10" id="remark" cssClass="m_g text_eara"/><br/>
            <s:if test='%{action != "toAdd"}'>
            <s:fielderror fieldName="iepgSiteVO.remark" cssStyle="color:red" theme="simple"/>
            </s:if>
        </td>
      </tr>
      </table>
        <div class="info">
          <input type="submit" id="showButton" onclick="this.disabled=true;activethis();"  value="<s:text name="msg.portalMS.system.ok"/>"/>
          <!--<button name="addIepg"><s:text name="msg.portalMS.system.ok"/></button>-->
          <input type="button" onclick="queryIepg();setTimeout(function(){load()},tipTime);" value="<s:text name="msg.portalMS.system.goBack"/>"/>
        </div>
  </div>
</div>
</s:form>
</body>
</html>


0 0