JS写一个所有input项都验证合法后才能点击提交按钮,否则点击提交按钮弹出(‘填写有误’)

<!DOCTYPEhtml><html><body><divclass="box"><formid='form'><dl><dd>账户</dd><inputtype="t... <!DOCTYPE html>
<html>

<body>
<div class="box">
<form id='form'>
<dl>
<dd>账户</dd><input type="text" name="text" id="user"/><span id="p01"></span>
<dd>密码</dd><input type="password" name="psd" id="psd"/><span id="p02"></span>
<dd>手机号码</dd><input type="text" name="tel" id="tel"/><span id="p03"></span>
<dd></dd><input type="button" value="提交" id="btn" />
</dl>
</form>
</div>
</body>
</html>
<script>
window.onload=function(){

// var user = $("#user").val();
// var psd = $("#psd").val();

//账户和密码获取到焦点后清空span里的内容
$("#user").focus(function(){

$('#p01').empty();

})

$("#psd").focus(function(){

$('#p02').empty();

});

$("#tel").focus(function(){

$('#p03').empty();

});

//账户的合法验证
$("#user").blur(function(){
var reguser = /^[a-zA-Z0-9_-]{4,16}$/;
var user = $('#user');
if( $("#user").val().length == 0 ){

p01.innerText="账户不能为空";
$("#p01").css("color","red");

}else if(reguser.test(user.val())){

p01.innerText="用户名输入正确";

$("#p01").css("color","blue");

}else{
p01.innerText="用户名为4-16位字母,数字,下划线,减号";

$("#p01").css("color","red");

}

})

//密码的合法验证
$("#psd").blur(function(){
var regpsda =/[0-9|a-z|A-Z]/;
var regpsdb =/^[a-zA-Z]+$/; //该出密码强度设计不够严谨
var regpsdc =/[^0-9a-zA-Z]/;
// var regpsdd =/^[A-Za-z0-9]{6,20}$/;
var psd = $('#psd');
if( $("#psd").val().length == 0 ){

p02.innerText="密码不能为空";
$("#p02").css("color","red");

}else if(regpsda.test(psd.val())){

p02.innerText="密码强度低";
$("#p02").css("color","indianred");

}else if(regpsdb.test(psd.val())){
p02.innerText="密码强度中";
$("#p02").css("color","chocolate");

}else if(regpsdc.test(psd.val())){
p02.innerText="密码强度高";
$("#p02").css("color","green");

}else{
p02.innerText="密码位6-12位字母数字组合";
$("#p02").css("color","red");

}

})

//手机号码的合法验证

$("#tel").blur(function(){

var regtel = /^1[3|4|5|7|8][0-9]{9}$/;
var tel = $('#tel');

if( $("#tel").val().length == 0 ){

p03.innerText="号码不能为空";
$("#p03").css("color","red");

}else if(regtel.test(tel.val())){

p03.innerText="手机号输入正确";
$("#p03").css("color","blue");

}else{
p03.innerText="请输入正确的手机号";
$("#p03").css("color","red");

}

})

}
</script>
展开
 我来答
641008175
2017-12-15 · TA获得超过1080个赞
知道小有建树答主
回答量:825
采纳率:86%
帮助的人:491万
展开全部
$("#user").focus(function(){
    $('#p01').empty();
})
$("#psd").focus(function(){
    $('#p02').empty();
});
$("#tel").focus(function(){
    $('#p03').empty();
});

function checkUser() {
    var reguser = /^[a-zA-Z0-9_-]{4,16}$/;
    var user = $('#user');
    if( $("#user").val().length == 0 ){
        $("#p01").html("账户不能为空");
        $("#p01").css("color","red");
        return false;
    }else if(reguser.test(user.val())){
        $("#p01").html("用户名输入正确");
        $("#p01").css("color","blue");
        return true;
    }else{
        $("#p01").html("用户名为4-16位字母,数字,下划线,减号");
        $("#p01").css("color","red");
        return false;
    }
}

function checkTel() {
    var regtel = /^1[3|4|5|7|8][0-9]{9}$/;
    var tel = $('#tel');
    if( $("#tel").val().length == 0 ){
        $("#p03").html("号码不能为空");
        $("#p03").css("color","red");
        return false;
    }else if(regtel.test(tel.val())){
        $("#p03").html("手机号输入正确");
        $("#p03").css("color","blue");
        return true;
    }else{
        $("#p03").html("请输入正确的手机号");
        $("#p03").css("color","red");
        return false;
    }

}

function checkPassword() {
    var regpsda =/[0-9|a-z|A-Z]/;
    var regpsdb =/^[a-zA-Z]+$/; //该出密码强度设计不够严谨
    var regpsdc =/[^0-9a-zA-Z]/;
    var psd = $('#psd');
    if( $("#psd").val().length == 0 ){
        $("#p02").html("密码不能为空");
        $("#p02").css("color","red");
        return false;
    }else if(regpsda.test(psd.val())){
        $("#p02").html("密码强度低");
        $("#p02").css("color","indianred");
        return true;
    }else if(regpsdb.test(psd.val())){
        $("#p02").html("密码强度中");
        $("#p02").css("color","chocolate");
        return true;
    }else if(regpsdc.test(psd.val())){
        $("#p02").html("密码强度高");
        $("#p02").css("color","green");
        return true;
    }else{
        $("#p02").html("密码位6-12位字母数字组合");
        $("#p02").css("color","red");
        return false;
    }

}

$('#btn').on('click',function () {
    var user=checkUser();
    var tel=checkTel();
    var psd=checkPassword();
    if(user && tel && psd){
        alert('提交');
    }else {
        alert('填写有误');
    }
});

改写好了 你自己直接替换进去 判断逻辑沿用你自己的,只是密码强度这块需要你自己衡量,例如密码强度弱不给提交 那对应的

else if(regpsda.test(psd.val())){
        $("#p02").html("密码强度低");
        $("#p02").css("color","indianred");
        return true;
    }

这个return改为false。表单的提交话在把alert('提交')改为 $('#form').submit();

更多追问追答
追问
我把焦点事件加到你写的check___()函数里去,当失去焦点的时候,右边也没有提示呢?
追答
统一在#btn上执行验证 如果你要在失去焦点就验证  则需要一个全局变量来监听 也就是user tel psd这三个变量要变成全局的。然后在.blur(function(){ //执行对应的方法 例如 psd=checkPassword();})
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式