解决Error:ftl页面通过form提交表单,后台java类接收的值为null

24 篇文章 0 订阅

错误描述:

checkoutdetail.ftl页面:用Js中的Ajax方式提交form表单,CheckOutDetailWork.java中元素的值为空。


checkoutdetail.ftl提交表单部分代码:

<script>			
$(function(){
    $('#submit-order').click(function(){    
    
    	//通过标签的名字获取元素列表
	//var obj = document.getElementsByTagName("input");		         
    //通过元素的名字获取元素group1的列表
	var obj = document.getElementsByName("group1");
    for(var i=0; i < obj.length; i++){
    	//逐个验证是否被选中
        if(obj[i].checked){
        	//被选中的值
            //alert(obj[i].value);
            //若选中,就获取空间value的属性值
            var checked = obj[i].value;
            //通过value的属性值,到switch语句中设置隐藏域的值(选中为1,未选中为0)
            switch(checked){
            	case "free":free = "1";continue;
            	case "local":local = "1";continue;
           	}
		}else{
            var checked = obj[i].value;
            switch(checked){
            	case "free":free = "0";continue;
            	case "local":local = "0";continue;
            }
		}
	}

	//通过元素的名字获取元素group2的列表
	var obj = document.getElementsByName("group2");
    for(var i=0; i<obj.length; i++){
    	//选中为1,未选中为0
        if(obj[i].checked){
            var checked = obj[i].value;
            switch(checked){
            	case "bankCard":bankCard = "1";continue;
            	case "alipay":alipay = "1";continue;
            	case "weChat":weChat = "1";continue;
            	case "direct":direct = "1";continue;
            }
		}else{
            var unchecked = obj[i].value;
            switch(unchecked){
            	case "bankCard":bankCard = "0";continue;
            	case "alipay":alipay = "0";continue;
            	case "weChat":weChat = "0";continue;
            	case "direct":direct = "0";continue;
            }
		}
	}   

         $.ajax({
                type: "POST",
                url: '<@ofbizUrl>submitorder</@ofbizUrl>',
                data: $('#submitorder').serialize(),
                dataType: "json",
                success: function(result){
							if(result.code===1){
								
						 	}							
						}
            });        

	      
         
    });
});
</script>


CheckOutDetailWork.java接收页面提交的值,部分代码

String group1 = request.getParameter("group1");


解决办法:

查看checkoutdetail.ftl页面,发现

<div class="radio-group">
<span style="white-space:pre">	</span><input id="free" class="le-radio" type="radio" <span style="color:#ff0000;">name="group1"</span> value="free"> <div class="radio-label bold">免运费</div><br>
        <!-- 隐藏域传值,默认为非选中状态 -->
        <input type="hidden" id="free" name="free" value="0">
        <input id="local" class="le-radio" type="radio" <span style="color:#ff0000;">name="group1"</span> value="local" checked>  <div class="radio-label">快递<br><span class="bold">$15</span></div>
        <input type="hidden" id="local" name="local" value="1">
</div>


input中没有name属性!并且form表单嵌套!


注意:form千万不能嵌套!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值