(onSubmit事件函数加提交前的js校验)尽量选择action方式提交。用同步方式。【免得像现在这样还得该 成同步】

=====【之前喜欢  异步方式。感觉写校验时,思路连贯,校验完发请求 很流畅。】

<div id="btn_save_baseInfo" class="btn_save">
    <input type="submit" value="保存" class="btn btn-default btn-lg btnCustom" /> <%--  同步  --%>
    <%--<input id="submitId" type="button" value="保存" class="btn btn-default btn-lg btnCustom" /> 异步--%>
</div>

=====老大却说:异步提交 安全性可能比较低。查了下,只查到 js代码 可以拦截Ajax请求。没查到拦截同步action请求。

了解到:异步还是同步 都是 http请求。只是提交方式不一样。安全性 主要决定于后台系统。

但是:行业习惯 认为异步请求相对安全性更低。那就 用同步方式。【免得像现在这样还得该 成同步】


=====

form:

 <form  id="newform" class="formbox" action="/promotion/media/create"  method="post" enctype="multipart/form-data" οnsubmit="return checkForm();"  >
                <jsp:include page="/WEB-INF/view/jsp/clickcube/admin/media/form.jsp"/>
            </form>

校验:

<script>

 //===============》同步提交表单 not  ok
    function checkForm(){

        //        1、媒体名称===ok
        $("#mediaNameTip").remove(); // 删除上次提示
        var val = $("#mediaName").val();
//        alert("val0:"+val);
        if(val.trim()==undefined || val.trim()==null || val.trim().length<1){
//            alert("val2:"+val);
            $("#mediaName").after("<span id='mediaNameTip' style='color: red'>必填</span>");
            return false;//阻止提交
        }


//        2、incomWay

        var incomWayChecked=$("input[type='radio'][name='incomeWay']:checked");//alert("incomWayChecked:"+incomWayChecked);//未选 也不是undefined
        var incomWayCheckedVal = incomWayChecked.val();//alert("incomWayCheckedVal:"+incomWayCheckedVal);return

        /*  00、change时:一级radio 未选择。=====》【只有二级radio需要在change时判断  这项。一级radio change,incomWay一定不是undefined】
         提示一级radio必选。
         删除所有可能存在的Tip和InputValue。
         取消二级radio的选中。
         ====》easy。
         */
        if(undefined == incomWayCheckedVal){ //style='margin-left: 4px'
            removeAll_TipAndValue();    //避免同种情况,多个提示。
            $("#incomeWayFont").after("<font color='red' id='incomeWayTip' style='float: left; ' >必填</font>");//必须在remove后
            $('input:radio[name="cpcType"]').removeAttr('checked');

            return false;
        }

        /*  01、change时:一级radio 已选择:incomWay=0。
         删除所有可能存在二级radio的Tip和InputValue: cpc价格清空====ok
         取消二级radio的选中。====ok
         ====》easy。*/
        if("0".indexOf(incomWayCheckedVal) !=  -1){ //String   incomWay等于0
            removeAll_TipAndValue_Cpc();
            $('input:radio[name="cpcType"]').removeAttr('checked');

            //=====》add for submit
            if( !validateRate()){
                return false;
            }else {
//                submitform();
                return true;
            }
        }

        /*
         02、change时:一级radio 已选择:incomWay=1。【最复杂的到了。】
         */
        if("1".indexOf(incomWayCheckedVal) !=  -1){ //String   incomWay等于1
            var cpcTypeVal = $("input[type='radio'][name='cpcType']:checked").val();

            /*  02.00、change时:一级radio 未选择。=====》【只有二级radio需要在change时判断  这项。一级radio change,incomWay一定不是undefined】
             提示二级radio必选。
             删除所有可能存在的Tip和InputValue。
             取消二级radio的选中。
             ====》easy。
             */
            if(undefined == cpcTypeVal){ //style='margin-left: 4px'
                removeAll_TipAndValue();    //避免同种情况,多个提示。
                $("#cpcWayDD").append("<font color='red' id='cpcTypeTip'  >必选一种CPC</font>");//必须在remove后
                $('input:radio[name="cpcType"]').removeAttr('checked');

                return false;
            }

            /* 02.1 change时:二级radio选择的是cpcType=0
             不需要其他操作。*/
            if("0".indexOf(cpcTypeVal) !=  -1){
                //不需要其他操作。

                //=====》add for submit
                if( !validateClickUnitPrice()){
                    return false;
                }else {
                    //submitform();
                    return true;

                }

            }

            /*02.2 change时:二级radio选择的是cpcType=1
             删除 cpcType=0的 的Tip和InputValue:clickUnitPriceTip清空。clickUnitPrice清空。*/
            if("1".indexOf(cpcTypeVal) !=  -1){
                removeAll_TipAndValue_Cpc();//也就是cpcType=0的 的Tip和InputValue
//                submitform();
                return true;
            }

        }


        /* ==========【校验结束】
         */

        return true;

    }


</script>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值