看下这节课js部分这样修改是不是也可以

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

人生的起源

2019-06-28 00:55:15

    <script>
    function replaceValidationUI(form) {

        form.addEventListener("invalid", function(event) {
            event.preventDefault();
            var inValidityField = form.querySelectorAll(":invalid"),
                errorMessage = form.querySelectorAll(".error-message"),
                parent;

            for (var i = 0; i < errorMessage.length; i++) {
                errorMessage[i].parentNode.removeChild(errorMessage[i]);
            }
            for (var i = 0; i < inValidityField.length; i++) {
                parent = inValidityField[i].parentNode;
                parent.insertAdjacentHTML("beforeend", "<div class='error-message'>" + inValidityField[i].validationMessage + "</div>")
            }
            if (inValidityField.length > 0) {
                inValidityField[0].focus();
            }
        }, true);
    }
    var form = document.getElementById("forms");
    replaceValidationUI(form);
    </script>

没搞明白为什么需要监听表单的"submit"事件,所以我在这里去掉了监听"submit"事件,也不明白为什么要在点击按钮的时候才开始获取不符合验证的元素,所以我在form元素监听"invalid"的时候就开始获取不符合验证的元素,然后添加错误提示,最后发现好像也能实现效果,老师帮忙看下这样行不行,如果不行帮我解答一下上面的那两个疑惑,谢谢

写回答

1回答

好帮手慕慕子

2019-06-28

同学你好, 你这样写也是可以的, 因为type类型为submit的按钮,默认有提交表单功能

  1. 监听表单的submit是为了在输入不正确的时候,阻止表单的默认提交事件

  2. 点击按钮是因为表单验证的API默认在表单提交的时候才开始验证哦

如果帮助到了你, 欢迎采纳!

祝学习愉快~~

0

0 学习 · 5012 问题

查看课程