Jquery插件validate的remote的用法

本文介绍如何使用validate插件结合jQuery实现表单中唯一性字段的验证,包括验证规则设置、远程验证过程及后台处理逻辑,特别关注了如何在Struts2项目中实现与validate插件的集成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

validate是一个基于Jquery的表单验证插件,利用他的remote可以用来自定义远程验证,最近在项目中用到这个,但是在这当中遇到的几个问题,感觉让人很误解,下面我们来看例子。

这是要验证的表单:

  1. <form id="frm" name="frm" class="validateform">  
  2. <p><label for="pinm86">&nbsp;品名:</label><input type="text" id="pinm86" name="pinm86" /></p>  
  3. <p><label for="fangjianid78">房间号:</label><input type="text" id="fangjianid78" name="fangjianid78" /></p>  
  4. </form>  

这里我要验证品名的唯一性,如果输入品名重复就提示

下面是JS代码

  1. <script type="text/javascript">   
  2. jQuery(document).ready(function($){   
  3.     $(".validateform").validate({   
  4.   
  5.           rules:{   
  6.                  pinm86:{   
  7.                           required:true,   
  8.                           remote:{   
  9.                             url: "validateSbSbinfoData.action"//后台处理程序    
  10.                             type: "get",  //数据发送方式   
  11.                             dataType: "json",       //接受数据格式       
  12.                             data:  {                     //要传递的数据   
  13.                                 pinm86: function() {   
  14.                                     return $("#pinm86").val();   
  15.                                            }   
  16.   
  17.                                    }   
  18.             
  19.                                }     
  20.                          }   
  21.                       },   
  22.     messages:{    
  23.         pinm86:{    
  24.         remote:"品名已经存在!"    
  25.         } }   
  26.             
  27.          
  28.     });   
  29. });   
  30. </script>  
 
 

很多网上文章在只提到remote接受Json格式数据,然后就没有了,其实remote接受的返回值只要truefalse即可,通过查看源代码可以发现,remote通过返回的false和true来判断的,那么就是说你后台程序只要返回true和false值,这点让我误解了许久。由于项目用到了Struts2,这是struts的配置文件,相信你不会陌生吧:

  1. <package name="json_sbSbinfo" extends="json-default">  
  2. <action name="validateSbSbinfoData" class="sbSbinfoAction" method="validateData">  
  3.             <result name="success" type="json">  
  4.                        <param name="defaultEncoding">UTF-8</param>  
  5.                        <param name="root">resstr</param>  这里的resstr 就是Action里面对应的属性值
  6.             </result>  
  7.             <result name="error" type="json"><param name="defaultEncoding">UTF-8</param></result>  
  8.         </action>  
  9. </package>  

 

这边有俩点要注意一下:1.因为Action里面要返回Json数据格式所以<package name="json_sbSbinfo" extends="json-default">    这里的extends是“json-default” 而不是以往的“struts-default”。

2.要加上这个参数 <param name="root">resstr</param>  这里的resstr 就是Action里面对应的属性值

下面是sbSbinfoAction

  1. public class SbSbinfoAction extends ActionSupport implements ServletRequestAware,SessionAware {   
  2.   
  3.     private boolean resstr;   
  4.   
  5.   
  6.     public String validateData()   
  7.     {     
  8.         String result = ERROR;   
  9.         String vcpinm=(String)this.request.getParameter("pinm86");   
  10.         Map map= new HashMap();   
  11.         map= sbSbinfoService.validateData(vcpinm);   
  12.         Object dd=map.get("n");   
  13.         String s=dd.toString();   
  14.         if(s.equals("0"))   
  15.         {this.resstr=true;}   
  16.         else  
  17.         {this.resstr=false;   
  18.                
  19.         }   
  20.         result= SUCCESS;   
  21.         return result;   
  22.     }   
  23.   
  24.        
  25.     @JSON(serialize=false)   
  26.     public SbSbinfoService getSbSbinfoService() {   
  27.         return sbSbinfoService;   
  28.     }   
  29.   
  30.   
  31.   
  32.     public boolean getResstr() {   
  33.         return resstr;   
  34.     }   
  35.   
  36.     public void setResstr(boolean resstr) {   
  37.         this.resstr = resstr;   
  38.     }   
  39.   
  40.   
  41. }  

这里涉及到Json数据格式转换的问题,将在未来的相关文章里涉及到,希望这篇文章帮助到你哦!

本文来自鲜橙吧  原文地址:http://www.xianchengba.com/230.html


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值