ajax从后台获取到null中止提交表单

function check() {//js表单验证方法
        var text = document.getElementById("xh").value;//通过id获取需要验证的表单元素的值
        if (text == "") {
            alert("请输入学号!");//弹出提示
            return false;//返回false(不提交表单)
        }
        if (!(/(^[1-9]\d*$)/.test(text))) {
            alert("请输入学号!");//弹出提示
            return false;//返回false(不提交表单)
        }
        var student_id = $('input[name="student_id"]').val();
        $.post("<%=basePath%>user/queryByUser", 
            { student_id : student_id }).done(function(data) {
            console.log(data.result);
            if (data == null || data == "") {
                console.log("没有");
                alert("没有");
                return false;
            } else {
                console.log("有");
            }
        }).fail(function() {
            console.error("错误");
        });
        return true;//提交表单
    }
</script>
<body>
    <div class="listDIV">
        <table id="FileTable" border="1" width="50%" height="50%"
            style="text-align: center;">
            <form action="<%=basePath%>user/one" method="post">
                <input type="text" id="xh" name="student_id" placeholder="根据学号查询">
                <button class="glyphicon glyphicon-select" onclick="return check();">查询</button>
            </form>

判断为空的时候中止提交表单

阅读 2.7k
4 个回答
  1. 不走成功回调分支,应该第一时间查HTTP返回码是不是200啊,如果不是肯定没走
  2. 或者你也可以加个失败回调,不成功则失败,反正得走一个
  3. 代码可以精简下,有些默认参数可以不用都写出来。另外不建议用alert吧,Console就好

var student_id = $('input[name="student_id"]').val();
$.post("<%=basePath%>user/queryByUser", {student_id: student_id})
    .done(function(data) {
        console.log(data.result);
    
        if(data==null || data==""){
            console.log("没有");
        } else {
            console.log("有");
        }
    })
    .fail(function(){
        console.error("错误");
    });

......你这边的判断写成if(!data){...}else{...}

直接写if(!data),如果要这样写的话,要用三连等if(data === null)

直接写if(!data){}判断就行了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题