老师帮看下问题出在哪吧

来源:4-13 html5默认气泡修改演示

慕九州7567404

2019-02-17 20:55:19

<!--默认气泡样式修改试着用jq写了下,问题如下:当某一项验证正确,一项失败时,获取到的parent元素为什么会重复出现两遍?-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>
    <style type="text/css">
 .box{
            line-height: 30px;
 margin: 40px;
 }
        .box>input{
            width: 60%;
 height: 30px;
 border-radius: 6px;
 }
        .box>label{
            display: inline-block;
 width: 100px;
 height: 30px;
 line-height: 30px;
 text-align: center;
 }
        .box .submit{
            margin-left: 100px;
 display: block;
 width: 100px;
 background-color: #0077aa;
 }
        .error-msg{
            color: red;
 margin-left: 100px;
 font-size: 14px;
 }
    </style>
</head>
<body>
<form action="">
    <div class="box">
        <label for="name">用户名:</label>
        <input type="text" id="name" required />
    </div>
    <div class="box">
        <label for="email">邮箱:</label>
        <input type="email" id="email" required />
    </div>
    <div class="box">
        <input class="submit" type="submit" value="提交" />
    </div>
</form>
<script>

 var requires = $('input');

 //监听 未验证成功,阻止默认事件  添加自定义错误信息提示
 $('.submit').click(function () {
        $('.error-msg').remove();
 requires.on('invalid',function () {
            var parent = $(this).parent();
 //获取到的parent元素为什么会重复出现两遍?
 console.log(parent);
 parent.append($('<div class="error-msg">'+this.validationMessage +'</div>'));
 return false;
 });
 });

</script>
</body>
</html>


写回答

1回答

好帮手慕星星

2019-02-18

你好,

parent获取到两个是正常的,因为有两个需要检验的input框,分别获取这两个元素的父元素。

但是两个事件需要分开,否则会进行多次校验,错误信息提示会累加,如下修改:

http://img.mukewang.com/climg/5c6a2cd300011dd610760423.jpg

自己可以测试下,祝学习愉快!

0

0 学习 · 5012 问题

查看课程