form表单提交同步校验异步校验

form表单提交一般都是同步提交或者ajax提交,今天就讲解一下关于form submit提交遇到的两个小问题

情况1:

<form enctype="multipart/form-data" onSubmit="but_onlick();return false;">
             <fieldset>
                            <label class="block clearfix">
                                         <span class="block input-icon input-icon-right">
                                          <input type="text" id="username" name="username" class="form-control" placeholder="账号" />
                                                            <i class="icon-user"></i>
                                                        </span>
                                                    </label>

                                                    <label class="block clearfix">
                                                        <span class="block input-icon input-icon-right">
                                                            <input type="password" id="pwd" name="pwd" class="form-control" placeholder="密码" />
                                                            <i class="icon-lock"></i>
                                                        </span>
                                                    </label>

                                                   
                                                    <label class="block clearfix">
                                                        <span id="span_id"></span>
                                                    </label>

                                                    <div class="space"></div>

                          <div class="clearfix">
                                        <button type="submit" class="width-35 pull-right btn btn-sm btn-primary">
                                        <i class="icon-key"></i>  登录</button>
                           </div>

               <div class="space-4"></div>
       </fieldset>
 </form>

如果form是通过submit提交的话,那么是当前页面form数据都会传递过去,这样在后台判断的话,如果数据校验问题又返回到form表单页面,这样很容易造成数据丢失,要么就是数据跟提交前填写内容不同。可以使用ajax的方法进行校验,保证数据稳定性,提交到后台就可以尽量减少问题。

<script type="text/javascript">
        function but_onlick () {
        
            var username = $("#username").val();
            var pwd = $("#pwd").val();
            var yzm = $("#yzm").val();
            if(username == '') {
            //    alert('用户不能为空');
                $("#span_id").html('用户不能为空');
                $("#span_id").css("color","red");
                var username = document.getElementById("username");
                username.focus();//焦点事件
                username.select();
                return ;
            } 
            

            var t= {
                    username: username
                };
            $.ajax({
                type: "post",
                url: "/Admin/login/ajaxlogin", 
                //data:JSON.stringify(t), //将对象转为为json字符串  
                data : t ,
                 //dataType:"json",  
                //contentType:"application/text", //这个必须,不然后台接受时会出现乱码现象  
                success: function(result) {                    //r为返回值
                    //alert(result.code);
                    console.log(result.code);
                    if (result.code == '10000') {
                        $("#span_id").html('登录成功');
                        $("#span_id").css("color","blue");
                        window.location.href = "/wfpcAdmin/home";
                    } else {
                        $("#span_id").html(result.msg);
                        $("#span_id").css("color","red");
                        $('#captcha_img').click();
                    }
                }
            });
            
        }
        </script>

在form表单那里,<form enctype="multipart/form-data" onSubmit="but_onlick();return false;"> 使用这个

 

情况2:

<form action="add" method="post" onsubmit="return goodsaddsave();">
           <button class="btn btn-success" type="submit"><i class="fa fa-check"></i> 确定添加</button>

如果一定使用form表单同步,按回车键提交,在做form里面数据又想着去校验,又怎么办呢???

可以尝试一下办法

function goodsaddsave(){

       ///
       /  多图上传不能为空
       ///
       var goods_arr = $("input[name='goods_img_array[]']").val();
       if (goods_arr == undefined ||  goods_arr == null){
           $("#spanid").show();
           $("#span_id").show();
           $("#spanid").focus();//焦点事件
           $("#spanid").select();
           return false;
       } else {
           $("#span_id").hide();
           $("#spanid").hide();
       }
}

因为你在form表单   οnsubmit="return goodsaddsave();    在方法里面 return false 就可以在前端校验了

这是遇到一些同学使用form表单提交,两种情况:同步和异步。不过现在大部分都是异步校验,谁还会用最原始的方法去后台校验,前端都会校验好form表单的数据问题。谢谢大家来指导!

灵活好用的jq表单验证,自己封装可按照验证需求添加验证方法,不需要修改验证整体结构,内含使用说明。 var arr = new Array(); /* */ //用户验证 arr[0] = new XQValidation(); arr[0].XChecksetcont("3-12长度,字母,数字,下划线", "", "表单不能为空", "验证失败", "此用户已存在", "此用户可以注册"); arr[0].posturl("/FormValidation/ajax/ajax-validation.asmx/user_isNull", "name"); arr[0].check("tname", "td1", "checkusername", true, true); //密码验证 arr[1] = new XQValidation(); arr[1].XChecksetcont("6-20长度,字母,数字,和其他符号", "ok", "表单不能为空", "wrong", "表单不能为空"); arr[1].check("tpass", "td2", "checkpassword", true, false); //邮箱验证 arr[2] = new XQValidation(); arr[2].XChecksetcont("正确邮箱", "ok", "表单不能为空", "wrong"); arr[2].check("tmail", "td3", "checkemail", true, false); //联系方式验证 arr[3] = new XQValidation(); arr[3].XChecksetcont("正确手机,非必须", "ok", "表单不能为空", "wrong"); arr[3].check("tmobile", "td4", "checkcontactway", true, false); //QQ验证 arr[4] = new XQValidation(); arr[4].XChecksetcont("qq,非必须", "ok", "表单不能为空", "wrong"); arr[4].check("tqq", "td5", "checkqq", false, false); //验证码验证 arr[5] = new XQValidation(); arr[5].XChecksetcont("", "ok", "表单不能为空", "wrong"); arr[5].check("tcode", "td6", "checknull", true, false); //重复密码验证 arr[6] = new XQValidation(); arr[6].XChecksetcont("", "", "表单不能为空", "密码不匹配"); arr[6].check("tapass", "td7", "checkpassword_", true, false); /* *summary:提交表单验证 */ function formok() { for (var i = 0; i < arr.length; i++) {//循环遍历验证对象 if (!arr[i].getstate()) { arr[i].alertwrong(); return false } } //判断两次输入的密码是否一样 if (!chkapass($("tapass").value)) { arr[6].alertwrong(); return false; } return true; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

明雨星云

感谢,我会继续创作更优质作品

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

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

打赏作者

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

抵扣说明:

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

余额充值