js截取URL并封装map集合+js动态创建Form表单并提交

/**
 * js获取url传递参数
 */
function getRequest(url) {
      var requestMap = new Array();// 定义一个数组,用来把参数封装成map集合
       if (url.indexOf("?") != -1) {
          var str = url.substr(1);
          strs = str.split("&");
          for(var i = 0; i < strs.length; i ++) {
              var p = new Object;
                  if(i==0){
                      var temp = strs[i].split("=")[0];
                      var strTemp = temp.split("?")[1];
                      //alert("strTemp------->"+strTemp);
                      p.name=strTemp;
                  }else{
                      //alert("strs[i].split('=')[0]-------->"+strs[i].split("=")[0]);
                      
                      p.name = strs[i].split("=")[0];
                  }
                  //alert("strs[i].split('=')[1]-------->"+strs[i].split("=")[1]);
                      p.value=strs[i].split("=")[1];
            
              requestMap.push(p);
          }
       }
       return requestMap;
    }



/**
 * 发送post请求,提交表单
 */
function sendPost(URL, map) {
    var temp = document.createElement("form");        
    temp.action = URL; //URL没有带参数,?之前的      
    temp.method = "post";        
    temp.style.display = "none";        
    document.body.appendChild(temp);        
    for (var i=0;i<map.length;i++) {        
        var opt = document.createElement("input");
        opt.name = map[i].name;        
        opt.value = map[i].value;        
        temp.appendChild(opt);
    }        
    temp.submit();        
}  


//异步提交表单

var validObject = $("#userInfo").Validform({
        
        dataType:'json',
        tiptype:2,
        ajaxPost:true,
        callback:function(data){
            
            if(data.loginTip==0){
                var url = data.finalUrl;
                if(url!=null&&url!=""){
                    if(data.requestMethod=="POST"){
                        var requestUri = data.requestUri;//URL地址,?之前的地址
                        var map = getRequest(url);//返回map集合
                        sendPost(requestUri,map);//发送post请求,提交表单
                    }else{
                        
                        window.location = encodeURI(url);
                    }
                }else{
                    window.location = basePath+"/index.do";
                }
            }
            else if(data.loginTip==1){
                
                alert("用户名或者密码错误!");
            }
            else{
                alert("验证码错误!");
                var obj = document.getElementById("checkCode");
                changeValidateCode(obj);
            }
        },
        
        tiptype:function(msg,o,cssctl){
            
            if(!o.obj.is("form")){
                var tds=o.obj.text();
                
                var objtip=o.obj.siblings(".Validform_checktip");
                cssctl(objtip,o.type);
                objtip.text(msg);
            
                
            }    
            
        }
    
    });

转载于:https://my.oschina.net/u/2253208/blog/541667

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值