老师看看这个
来源: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查看下结果
打印结果如下:
当只有一个input是错误时,inValidityField获取的只有一个input元素
由上面的打印结果可以看出来,inValidityField中存放的是有错误信息的input元素, 与页面中实际有几个input元素无关, 通过inValidityField[0]获取的是第一个有错误信息的元素。
第一个和第二个input都有错误信息时,inValidityField[0]选择第一个input元素聚焦,让用户先将第一个input输入正确
第一个正确,第二个错误时, inValidityField[0]的就是那个有错误的nput元素聚焦。
同理,第一个错误,第二个正确时, inValidityField[0]选择的还是那个有错误的nput元素聚焦。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
慕标5156652
提问者
2020-07-26
我前面说错了
重新说
这一段代码不理解 如果有错误信息 为什么会给第一个错误信息元素焦点呢 这里也不知道是那个元素有错误信息啊?如果两个input都错了不是应该都给焦点提示吗
如果第一个input没有错误信息 第二个有错误信息 你给第一个错误的input焦点这样说得通?
那如果都错了 就说不通。老师我这样理解有问题吗?
(如果是这样该怎么实现呢?inValidityField[i].focus();这样吗?) ,我这样理解可以吗 ?请老师讲讲
相似问题