请问老师,哪里错了,chrome也一直报错

来源:4-15 编程练习

蒜泥辣椒麻油加醋酱

2019-07-08 10:43:18

<!DOCTYPE html>

<html lang="en">


<head>

<meta charset="UTF-8">

<title></title>

<style>

.oneline {

line-height: 1.5;

margin: 10px auto;

}

.oneline label {

width: 100px;

text-indent: 15px;

font-size: 14px;

font-family: "Microsoft Yahei";

display: inline-block;

}

.oneline .sinput {

width: 60%;

height: 30px;

border-radius: 6px;

border: 1px solid #e2e2e2;

}

.oneline input[type="submit"] {

margin-left: 20px;

width: 80px;

height: 30px;

border: 0;

background-color: #5899d0;

color: #fff;

font-size: 14px;

border-radius: 6px;

}

.error-messages {

color: red;

}

</style>

</head>

<body>

<form id="forms">

<div class="oneline">

<label for="name">用户名:</label>

<input id="name" class="sinput" name="name" type="text" required>

</div>

<div class="oneline">

<label for="email">Email:</label>

<input id="email" class="sinput" name="email" type="email" required>

</div>

<div class="oneline">

<input type="submit" id="submits" value="提交">

</div>

</form>

<script>

function replaceValidationUI(form) {

       form.addEventListener("invalid", function(event) {

           event.preventDefault();

}, true);

       form.addEventListener("submit", function(event) {

if (!this.checkValidity()) {

               event.preventDefault();

}

},true);

//此处写代码

var submitBtn = document.getElementById('submits');

       submitBtn.addEventListener('click',function(event){

var inValidityField = form.querySelectorAll(":invalid"),

errorMessage = form.querySelectorAll(".error-messages"),

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("afterbegin","<div class='error-messages'>"+invalidityField[i].validationMessage+"</div>");

}

if (invalidFields.length > 0) {

           invalidFields[0].focus();

}

})

var forms = document.getElementById("forms");

replaceValidationUI(forms);

</script>

</body>


</html>


写回答

1回答

好帮手慕慕子

2019-07-08

同学你好, 代码中存在的错误如下所示

  1. 封装函数结尾少了一个花括号, 建议修改:

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

  2. 如下图所示, 声明变量的inValidityField中的V是大写, 后面使用的时候, 没有大写,导致报错。  建议修改:

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

同学可以自己结合示例测试一下, 另, 在编码过程中要细心一点哦

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

祝学习愉快~~~

0

0 学习 · 5012 问题

查看课程