老师看看这个

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

慕标5156652

2020-07-26 21:32:41

if (inValidityField.length > 0) {

inValidityField[0].focus();

}

这一段代码不理解 如果有错误信息 为什么会给第一个元素焦点呢 这里也不知道是那个元素有错误信息啊?

如果第一个input没有错误信息 第二个有错误信息 你给第一个input焦点不是会混淆用户吗?

我觉得那个元素有错误信息 就该给那个元素焦点(如果是这样该怎么实现呢inValidityField[i].focus();这样吗?) ,我这样理解可以吗 ?请老师讲讲

写回答

2回答

好帮手慕慕子

2020-07-27

同学你好,首先要了解,页面中有且只能有一个元素聚焦,不可能多个元素同时聚焦,然后再参考如下解析理解。

可以打印输出inValidityField查看下结果

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

打印结果如下:

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

当只有一个input是错误时,inValidityField获取的只有一个input元素

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

由上面的打印结果可以看出来,inValidityField中存放的是有错误信息的input元素, 与页面中实际有几个input元素无关, 通过inValidityField[0]获取的是第一个有错误信息的元素。

第一个和第二个input都有错误信息时,inValidityField[0]选择第一个input元素聚焦,让用户先将第一个input输入正确

第一个正确,第二个错误时, inValidityField[0]的就是那个有错误的nput元素聚焦。

同理,第一个错误,第二个正确时, inValidityField[0]选择的还是那个有错误的nput元素聚焦。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

0

慕标5156652

提问者

2020-07-26

我前面说错了

重新说

这一段代码不理解 如果有错误信息 为什么会给第一个错误信息元素焦点呢 这里也不知道是那个元素有错误信息啊?如果两个input都错了不是应该都给焦点提示吗

如果第一个input没有错误信息 第二个有错误信息 你给第一个错误的input焦点这样说得通?

那如果都错了 就说不通。老师我这样理解有问题吗?

(如果是这样该怎么实现呢?inValidityField[i].focus();这样吗?) ,我这样理解可以吗 ?请老师讲讲


0

0 学习 · 6815 问题

查看课程