关于表单页面提交信息的判断


一开始提交按钮是disabled的, 我想让所有信息都符合条件了,按钮才可以点击.
输入框是失去焦点时判断的.
该怎么写状态标记flag?

$(function() {
    var flag = false;
    $('#txt1').blur(function() {
        if('不符合条件') {
            alert('提示');
        }
    });
    $('#txt2').blur(function() {
        if('不符合条件') {
            alert('提示');
        }
    });
    $('#txt3').blur(function() {
        if('不符合条件') {
            alert('提示');
        }
    });
})

$('#txt1').blur(function() {
   vali();
});
$('#txt2').blur(function() {
    vali();
});
$('#txt3').blur(function() {
    vali();
});
......

function vali(){
    var flag = true;
    
    if('不符合条件') {
        flag  = false;
    }
    
    if('不符合条件') {
        flag  = false;
    }
    
    ......
    
    if (flag){
        // 按钮可以点击了
    }

}

这太不优雅了。其实有很多不错的前端校验框架的,网上找找很多的。


$(function() {
    var flag = true;
    $('#txt1,#txt2,#txt3').blur(function() {
        check();
    });
    
    function check() {
        var flag = true;
        if('不符合条件1') {
            flag = false;
            alert('提示');
        }
        if('不符合条件2') {
            flag = false;
        }
        if('不符合条件3') {
            flag = false;
        }
        // 所有条件都满足 flag 还是true
        if (flag) {
            // do something
        }
    }
})

$(function() {
    $('#txt1, #txt2, #txt3').blur(checkAndDisable);
    function checkAndDisable(){
       // ...获取txt1,txt2,txt3的文本,检查,然后根据结果disable提交按钮
    }
})



相关阅读:
extjs3.2 panel组件能否添加focus和blur事件
如何将全局变量i变成函数的局部变量?
vue应用嵌在微信里 ,点击微信右上角的分享其中一个页面的链接 ,怎样让用户点开来就是当前页面呢?
AngularJS路由添加controller问题
PC端API和移动端API有什么不同吗?
pycharm 如何配置 python3 的开发环境?
vue中通过this.$router.push 到当前页面,只是参数不同,页面没有重新请求数据?
vue.js2.0中set和get的问题
$.ajax 跨域 options
mysql 的IFNULL失效
webpack在安装的时候出现问题
使用websocket上传视频文件后无法播放
作用域链的问题?
angular.js高级程序设计书本开头配置环境出错,谁能给解答一下
样式和类样式区别
关于this在浏览器中的指向
在node.js里面可以使用window对象的方法吗
angularjs如何将字符串类型的时间格式化呢
bundle-loader解析import异于ES6 module
video标签怎么控制播放内容的宽高?



快速导航

Copyright © 2016 phpStudy |