前端开发

基于jqurey事件委托,实现表单验证

2018-04-02  本文已影响0人  WestLonely

1 预备知识


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>

</head>
<body>
<form action="" id='form'>
    <div>输入两位大写字母 : <input type="text"></div>
    <div>输入两位大写字母 : <input type="text"></div>
    <div>输入两位大写字母 : <input type="text"></div>
    <div>输入两位大写字母 : <input type="text"></div>
    <div>输入两位大写字母 : <input type="text"></div>
    <div>输入两位大写字母 : <input type="text"></div>
    <div>输入两位大写字母 : <input type="text"></div>
    <div>输入两位大写字母 : <input type="text"></div>
    <div>输入两位大写字母 : <input type="text"></div>
    <div>输入两位大写字母 : <input type="text"></div>
</form>
<div>
    <button type="button" onclick="submit()">提交按钮</button>
</div>
<script src="https://cdn.bootcss.com/jquery/2.2.2/jquery.js"></script>
<script>
    var reg = /[A-Z]{1}/;
    var arr = [];
    $ ( "#form" ).on ( 'blur', 'input', function ( e ) {
        var val = $ ( this ).val ();
        console.log ( val );
        if ( reg.test ( val ) ) {
            $ ( this ).css ( {
                border: '1px solid #ccc'
            } );
            $ ( this ).attr ( 'data-true', 'success' );
        }
        else {
            $ ( this ).css ( {
                border: '1px solid #f00'
            } );
            $ ( this ).attr ( 'data-true', 'error' );
        }
    } )

    function submit ( e ) {
        var len = $ ( '#form input' ).length;
        for ( var i = 0; i < len; i++ ) {
            if ( $ ( '#form input' ).eq ( i ).attr ( 'data-true' ) == 'error' ) {
                /* $('#form input').eq(i).attr('data-true') == 'error'
                 * $ ( '#form input' ).eq ( i ).attr ( 'data-true' )有三个值分别为:
                  * 验证正确的是 success,
                 * 验证错误的是 error,
                 * 未验证的是undefined,
                 * 遍历 input 属性,如果error,放进数组中,根据不同的需求,改变验证验证条件.
                  */
                arr.push ( 'error' )
            }
        }
        if ( arr.length <= 0 ) { // 如果全部选中,则在循环中将  ' success ' push 进数组中,根据不同的业务为需求,相应的改变判断条件即可.
            // 提交表单逻辑
        }
    }
</script>
</body>
</html>

上一篇 下一篇

猜你喜欢

热点阅读