你好,关于循环删除错误信息

你好,关于循环删除错误信息

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

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

var invalidity_field = forms.querySelectorAll(':invalid'),

//不符合验证信息的↑↑

error_message = forms.querySelectorAll('.error-message'),

//取到所有错误信息↑↑,选择这是为了把之前的错误信息清除掉

parent;

//对错误信息进行循环,点击提交按钮后把错误信息删除掉

for (var i = 0; i < error_message.length; i++) {

error_message[i].parentNode.removeChild(error_message[i]);

}

for (i = 0; i < invalidity_field.length; i++) {

parent = invalidity_field[i].parentNode;

parent.insertAdjacentHTML('beforeend', "<div class='error-message'>" + invalidity_field[i].validationMessage +

'</div>')

//获取错误信息,然后把它插入到input后面

}

//如果有错误信息的话↓↓

if (invalidity_field.length > 0) {

invalidity_field[0].focus();

}

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

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

var invalidity_field = forms.querySelectorAll(':invalid'),

//不符合验证信息的↑↑

error_message = forms.querySelectorAll('.error-message'),

//取到所有错误信息↑↑,选择这是为了把之前的错误信息清除掉

parent;

//对错误信息进行循环,点击提交按钮后把错误信息删除掉

for (var i = 0; i < error_message.length; i++) {

error_message[i].parentNode.removeChild(error_message[i]);

}

for (i = 0; i < invalidity_field.length; i++) {

parent = invalidity_field[i].parentNode;

parent.insertAdjacentHTML('beforeend', "<div class='error-message'>" + invalidity_field[i].validationMessage +

'</div>')

//获取错误信息,然后把它插入到input后面

}

我想问下,这段代码是先删除了它原有的错误信息,然后添加上一个div来显示新的错误信息,以这个思路触为出发点写的代码。但是当点击提交按钮的时候,删除错误信息的代码在添加错误信息的代码之前,我想问下它们是怎么解析的。

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

如果没有任何的问题,那么是没有任何提示的。

当提交时,有错的时候,那么这个错误内容就有了,修改内容后,再次点提交时,如果写的还有错误,那么就可以清空之前的错误提示,放上去新的错误提示。

我觉得逻辑这个东西,每个人都有不同的想法,你没必要非死磕老师的逻辑,你自己去写个你的想法也是可以的呀

  • 是胡桃呀 提问者 #1
    非常感谢!
    2018-03-23 14:35:23
一路电光带火花 2018-03-22 19:00:10

我是这么理解的,当点击提交按钮时,如果之前的表单有错误提示信息,那么将之前的错误信息给去掉,加上现有的错误提示信息。

  • 提问者 是胡桃呀 #1
    可是之前的表单上在创建"<div class='error-message'>" + invalidity_field[i].validationMessage +'</div>')这个div之前,并没有类名为'error-message'的元素呀
    2018-03-22 19:41:13
一路电光带火花 2018-03-22 18:15:37

不是很明白你的问题呀,你能不能把你不明白的代码圈起来?因为我觉得老师这个代码讲的很清楚了啊

  • 提问者 是胡桃呀 #1
    你好 for (var i = 0; i < error_message.length; i++) { error_message[i].parentNode.removeChild(error_message[i]); } for (i = 0; i < invalidity_field.length; i++) { parent = invalidity_field[i].parentNode; parent.insertAdjacentHTML('beforeend', "<div class='error-message'>" + invalidity_field[i].validationMessage + '</div>') 这两段代码,我不理解为什么他先删除再添加,因为他删除的时候,还并没有像HTML添加parent.insertAdjacentHTML('beforeend', "<div class='error-message'>" + invalidity_field[i].validationMessage +'</div>')这段代码,他是怎么删除的,对于JS的解析顺序不是很明白。
    2018-03-22 18:49:52
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
响应式开发与常用框架 2018
  • 参与学习           人
  • 提交作业       2198    份
  • 解答问题       5012    个

如果你有web端基础,既想进阶,又想进军移动端开发,那就来吧,我们专题为你带来的课程有HTML5、CSS3、移动基础、响应式、bootstrap、less等,让你在前端道路上畅通无阻!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师