Button按钮提交from表单并验证之后数据清空

16 篇文章 0 订阅
9 篇文章 1 订阅

你知道的越多,你不知道的越多;本文仅做记录,方便以后备阅。希望也能帮到正在看这篇文章的你。

最近在项目中新增了一个页面,页面包含了四个同级的table。提交from表单的时候同事给介绍了一种方式,比较实用,在这里写个Demo分享给大家。

前端页面:

<form action="#" method="post" onsubmit="return subForm();" id="Form" name="Form">
请输入学号:
      <input type="text" id="xh" name="xh" value="">
请输入密码
      <input type="text" id="pd" name="pd" value="">
</form>
<span id="but"><button onclick="checkForm();">报工提交</button></span>
<script type="text/javascript" src="static/js/jquery.tips.js"></script>
//提交
<script type="text/javascript">
      function subForm(){
          $.ajax({
              type: "POST",
              url:'<%=basePath%>test/queryWorker.do',
              data:$("#Form").serialize(),
              dataType:'json',
              cache: false,
              success : function(data) {
                    if("success" == data.result){
                         $("#but").tips({
                               side:3,
                               msg:'提交成功!!!',
                               bg:'#AE81FF',
                               time:1
                         });
                         $("#but").focus();
                         $("#xh").val('');//清空数据
                    }
              }
           })
       }
 /*这里是提交表单前的非空校验*/
     function checkForm() {
        var xh= $("#xh").val();
        if (xh== "" || xh== null || xh== undefined) {
             $("#xh").tips({
                 side:3,
                 msg:'不允许为空!',
                 bg:'#AE81FF',
                 time:2
             });
             $("#xh").focus();
             return false;/*阻止表单提交*/
        }else{
             return subForm();
        }
</script>

 后端Controller层:

    @RequestMapping(value="/queryWorker")
    @ResponseBody
    public Object queryWorker() throws Exception{
        PageData pd = new PageData();        
        Map<String,Object> map = new HashMap<String,Object>();
        String errInfo = "";
        pd = this.getPageData();
        //接收前台jsp传值     
        String xh=pd.get("xh").toString;
        String pd=pd.get("pd").toString;
        errInfo = "success";
        map.put("result", errInfo);
        return AppUtil.returnObject(pd, map);
    }

 后端AppUtil工具类:

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.codehaus.jackson.map.util.JSONPObject;

/** 
 * 接口参数校验
 * 公众号:NoHacker
 * @Author NoHacker
 */
public class AppUtil  {
    
    protected static Logger logger = Logger.getLogger(AppUtil.class);
    
    /**检查参数是否完整
     * @param method
     * @param pd
     * @return
     */
    public static boolean checkParam(String method, PageData pd){
        boolean result = false;
     
        int falseCount = 0;
        String[] paramArray = new String[20];
        String[] valueArray = new String[20];
        String[] tempArray  = new String[20];  //临时数组
        
        if(method=="registered"){// 注册
            paramArray = Const.APP_REGISTERED_PARAM_ARRAY;  //参数
            valueArray = Const.APP_REGISTERED_VALUE_ARRAY;  //参数名称
            
        }else if(method=="getAppuserByUsernmae"){//根据用户名获取会员信息
            paramArray = Const.APP_GETAPPUSER_PARAM_ARRAY;  
            valueArray = Const.APP_GETAPPUSER_VALUE_ARRAY;
        }
        int size = paramArray.length;
        for(int i=0;i<size;i++){
            String param = paramArray[i];
            if(!pd.containsKey(param)){
                tempArray[falseCount] = valueArray[i]+"--"+param;
                falseCount += 1;
            }
        }
        if(falseCount>0){
            logger.error(method+"接口,请求协议中缺少 "+falseCount+"个 参数");
            for(int j=1;j<=falseCount;j++){
                logger.error("   第"+j+"个:"+ tempArray[j-1]);
            }
        } else {
            result = true;
        }    
        return result;
    }   
    /**
     * 设置分页的参数
     * @param pd
     * @return
     */
    public static PageData setPageParam(PageData pd){
        String page_now_str = pd.get("page_now").toString();
        int pageNowInt = Integer.parseInt(page_now_str)-1;
        String page_size_str = pd.get("page_size").toString(); //每页显示记录数
        int pageSizeInt = Integer.parseInt(page_size_str);
        String page_now = pageNowInt+"";
        String page_start = (pageNowInt*pageSizeInt)+"";
        pd.put("page_now", page_now);
        pd.put("page_start", page_start);
        return pd;
    }
    
    /**设置list中的distance
     * @param list
     * @param pd
     * @return
     */
    public static List<PageData>  setListDistance(List<PageData> list, PageData pd){
        List<PageData> listReturn = new ArrayList<PageData>();
        String user_longitude = "";
        String user_latitude = "";
        try{
            user_longitude = pd.get("user_longitude").toString(); //"117.11811";
            user_latitude  = pd.get("user_latitude").toString();  //"36.68484";
        } catch(Exception e){
            logger.error("缺失参数--user_longitude和user_longitude");
            logger.error("lost param:user_longitude and user_longitude");
        }
        PageData pdTemp = new PageData();
        int size = list.size();
        for(int i=0;i<size;i++){
            pdTemp = list.get(i);
            String longitude = pdTemp.get("longitude").toString();
            String latitude = pdTemp.get("latitude").toString();
            String distance = MapDistance.getDistance(
                        user_longitude,    user_latitude,
                        longitude,        latitude
                    );
            pdTemp.put("distance", distance);
            pdTemp.put("size", distance.length());
            listReturn.add(pdTemp);
        }
        return listReturn;
    }  
    /**
     * @param pd
     * @param map
     * @return
     */
    public static Object returnObject(PageData pd, Map map){
        if(pd.containsKey("callback")){
            String callback = pd.get("callback").toString();
            return new JSONPObject(callback, map);
        }else{
            return map;
        }
    }
}

后端PageData类:

import java.math.BigDecimal;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
/** 
 * 说明:参数封装Map
 * 公众号:NoHacker
 * @Author NoHacker
 */
public class PageData extends HashMap implements Map{
    
    private static final long serialVersionUID = 1L;
    
    Map map = null;
    HttpServletRequest request;
    public PageData(HttpServletRequest request){
        this.request = request;
        Map properties = request.getParameterMap();
        Map returnMap = new HashMap(); 
        Iterator entries = properties.entrySet().iterator(); 
        Map.Entry entry; 
        String name = "";  
        String value = "";  
        while (entries.hasNext()) {
            entry = (Map.Entry) entries.next(); 
            name = (String) entry.getKey(); 
            Object valueObj = entry.getValue(); 
            if(null == valueObj){ 
                value = ""; 
            }else if(valueObj instanceof String[]){ 
                String[] values = (String[])valueObj;
                for(int i=0;i<values.length;i++){ 
                     value = values[i] + ",";
                }
                value = value.substring(0, value.length()-1); 
            }else{
                value = valueObj.toString(); 
            }
            returnMap.put(name, value); 
        }
        map = returnMap;
    }
    
    public PageData() {
        map = new HashMap();
    }  
    @Override
    public Object get(Object key) {
        Object obj = null;
        if(map.get(key) instanceof Object[]) {
            Object[] arr = (Object[])map.get(key);
            obj = request == null ? arr:(request.getParameter((String)key) == null arr:arr[0]);
        } else {
            obj = map.get(key);
        }
        return obj;
    }  
    public String getString(Object key) {
        return (String)get(key);
    }  
    public Date getDate(Object key) {
        return (Date)get(key);
    }
    public Integer getInteger(Object key) {
        return (Integer)get(key);
    }    
    public Double getDouble(Object key) {
        return (Double)get(key);
    }    
    public Float getFloat(Object key) {
        return (Float)get(key);
    }    
    public Short getShort(Object key) {
        return (Short)get(key);
    }    
    public BigDecimal getBigDecimal(Object key) {
        return (BigDecimal)get(key);
    }   
    @Override
    public Object put(Object key, Object value) {
        return map.put(key, value);
    }   
    @Override
    public Object remove(Object key) {
        return map.remove(key);
    }
    public void clear() {
        map.clear();
    }
    public boolean containsKey(Object key) {
        return map.containsKey(key);
    }
    public boolean containsValue(Object value) {
        return map.containsValue(value);
    }
    public Set entrySet() {
        return map.entrySet();
    }
    public boolean isEmpty() {
        return map.isEmpty();
    }
    public Set keySet() {
        return map.keySet();
    }
    @SuppressWarnings("unchecked")
    public void putAll(Map t) {
        map.putAll(t);
    }
    public int size() {
        return map.size();
    }
    public Collection values() {
        return map.values();
    } 
}

欢迎大家评论转发,收藏!

由于水平有限,本博客难免有不足,恳请各位大佬不吝赐教!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java-云海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值