weixin_41705788
weixin_41705788
2019-07-13 16:39
采纳率: 55.2%
浏览 408

请高手帮忙看看表单提交验证,为啥按了提交按钮后还是会通过呢?

就是验证手机验证码的,如果为空,表单提交是提交不了,但是如果不为空则开始验证AJAX后,就不行了,随便输入个数字就会提交。

<form name="regForm" action="./?act=save" method="post" onsubmit="return checkForm()">
        //验证码输入检查
        var i = document.getElementById('icode');
        var codebad = 1;
        function check_icode() {           

        var tip_phone = document.getElementById('tip_phone');
        if (i.value == "") {
        tip_phone.innerHTML = '请填写验证码';
        return false;
        } else {
        $.ajax({url:"code_back.asp",type:'POST',data:{i:i.value,p:p.value},dataType:'text',success:function(data){
        if(data=='1'){
        tip_phone.innerHTML = '请填写验证码2';
        return false;
        }            
        }})
        }
        }

function checkForm() {
return check_icode() ;
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • xwh1314
    xwh1314 2019-07-13 17:02
    已采纳

    改成这样试试

     //验证码输入检查
            var icode = document.getElementById('icode').value;
            var codebad = 1;
            function check_icode() {           
                var tip_phone = document.getElementById('tip_phone');
                if (icode == "" || icode == null || icode.length < 4) {
                        tip_phone.innerHTML = '请填写验证码';
                        return false;
                    } else {
                            $.ajax({
                                url:"code_back.asp",
                                type:'POST',
                                data:{i:i.value,p:p.value},
                                dataType:'text',
                                success:function(data){
    
                                }
                            })
    
                }
            }
    
    点赞 评论
  • wojiushiwo945you
    毕小宝 2019-07-13 17:40

    可能是你提交代码的地方有问题,没有根据 retrun false 这个结果进行处理。

    点赞 评论
  • French_fries
    Burcy Wen 2019-07-13 17:57

    $.ajax 是异步的,当你输入数字时,传入到ajax进行请求验证,请求发出此时会直接返回,你可以添加个参数async:false,改为同步请求,直接结果返回再退出该方法。

    点赞 评论
  • u012700200
    大浪淘鲨 2019-07-13 21:54

    代码:
    图片说明
    运行结果
    图片说明
    1、加上async: false
    2、ajax中不能返回东西,用一个变量flag接收,再把结果返回

    点赞 评论

相关推荐