一、$(‘form  :input‘)与$(‘form input‘)的区别

1、$(‘form  :input‘)返回form中的所有表单对象,包括textareaselectbutton等;

$(‘form input‘)返回form中的所有input标签对象

2、form input属于层级选择器(将每一个选择器匹配到的元素合并后一起返回);

form  :input属于表单选择器匹配所有 inputtextareaselectbutton等)。

二、jQuery 事件triggerHandler() 方法

1、定义用法

triggerHandler()方法触发被选元素指定事件类型

triggerHandler()方法与trigger()方法类似。不同的是它不会触发事件默认行为比如表单提交),而只影响第一个匹配元素

trigger() 方法相比的不同之处

需求

(1)* 代表必填

(2)必填数据为空或者不符合格式要求时,input后面追加红色的 × 符号

(3)必填项数据符合格式要求时,input后面追加红色的  符号

(4)必填项数据完全正确时,表单才可以提交数据,否则不可以提交

 

(1)无操作 

 

 

2为空时:

 (3)输入数据不符要求时

html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
    <title&gt;Document</title&gt;
    <link rel="stylesheet" href="css/demo.css"&gt;
</head>

<body>
    <div>
        <p>用户注册</p>
        <!--注册表单-->
        <form method="post" action="">
            <div class="int">
                <label for="username">用户名:</label>
                <input type="text" id="username" class="required" />
                <span class="formtips">*</span>
            </div>
            <div class="int">
                <label for="email">邮箱:</label>
                <input type="text" id="email" class="required" />
                <span class="formtips">*</span>
            </div>
            <div class="int">
                <label for="personinfo">个人资料:</label>
                <input type="text" id="personinfo" />
            </div>
            <div class="sub">
                <input type="submit" value="提交" id="send" /><input type="reset" id="res" />
            </div>
        </form>
    </div>


    <script src="js/jquery-3.5.1.min.js"></script>
    <script src="js/demo.js"></script>
</body>

</html>

 css

body {
    font: 12px/19px Arial, Helvetica, sans-serif;
    color: #666;
}

form div {
    margin: 5px 0;
}

.int label {
    float: left;
    width: 100px;
    text-align: right;
}

.int input {
    padding: 1px 1px;
    border: 1px solid #ccc;
    height: 16px;
}

.sub {
    padding-left: 100px;
}

.sub input {
    margin-right: 10px;
}

.formtips {
    margin: 2px;
    padding: 2px;
    color: #f00
}

.onError {
    background: #FFE0E9 url(../images/error.png) no-repeat 0 center;
    padding-left: 25px;
}

.onSuccess {
    background: #E9FBEB url(../images/right.png) no-repeat 0 center;
    padding-left: 25px;
}

.high {
    color: red;
}

.focus {
    border: 1px solid #f00;
    background: #fcc;
}

js

$(function () {
    // 1.如果是必填的,则加红星标识
    // $("form :input.required").each(function () {
    //     var $required = $(" <strong class='high'>*</strong>");//创建元素
    //     $(this).parent().append($required);//然后将它追加文档中

    // });
    //2.文本框失去焦点后开始验证
    $('form :input').blur(function () {
        var $parent = $(this).parent();
        $parent.find(".formtips").remove();
        //2.1验证用户名
        if ($(this).is("#username")) {
            if (this.value == "" || this.value.length < 6) {
                var errorMsg = '请输入至少6位的用户名.';
                $parent.append('<span class="formtips onError">' + errorMsg + '</span>');
            } else {
                var okMsg = '输入正确.';
                $parent.append('<span class="formtips onSuccess">' + okMsg + '</span>');
            }
        }
        //2.2验证邮件
        if ($(this).is('#email')) {
            if (this.value == "" || (this.value != "" &amp;&amp; !/^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/.test(this.value))) {
                var errorMsg = '请输入正确的E-Mail地址.';
                $parent.append('<span class="formtips onError">' + errorMsg + '</span>');
            } else {
                var okMsg = '输入正确.';
                $parent.append('<span class="formtips onSuccess">' + okMsg + '</span>');
            }
        }
        //2.3实现一边输入一边验证
    }).keyup(function () {
        //triggerHandler 防止事件执行完后,浏览器自动标签获得焦点
        $(this).triggerHandler('blur');
    }).focus(function () {
        $(this).triggerHandler('blur');
    });//end blur
    //2.4提交,最终验证。
    $("#send").click(function () {
        //trigger 事件执行完后,浏览器会为submit按钮获得焦点
        $("form :input.required").trigger('blur');
        var numError = $('form .onError').length;
        if (numError) {
            return false;
        }
        alert("注册成功,密码已发到你的邮箱,请查收.");
    });
    //3.重置
    $('#res').click(function () {
        $(".formtips").remove();
    });
    //4.选中输入的时候输入框变色
    $(":input").focus(function(){
        $(this).addClass("focus");
    }).blur(function(){
        $(this).removeClass('focus');
    });
})

原文地址:https://blog.csdn.net/qq_48666244/article/details/128173721

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_28460.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注