18437986772 发表于 2020-2-15 21:44:47

this.不出来setcustomvalidity手动输入可用是缺少什么吗?

<form>
      电话:<input type="tel" name="tels" id="tels" pattern="^(\+86)?1\d{10}$"><br>
      <input type="submit">
      </form>
      <script>
            document.getElementById("tels").oninput=function(){
                console.log("oninput:"+this.value);
            }
            document.getElementById("tels").oninvalid=function(){
//this后.不出来,手动输入可用
                this.setCustomValidity("请输入11位数字");
            }
      </script>

zltzlt 发表于 2020-2-15 21:46:24

你用的什么代码编辑器?

shake_a_tree@16 发表于 2020-2-15 21:50:19

可能是因为编辑器反应慢或者不够智能而已

18437986772 发表于 2020-2-15 21:50:30

zltzlt 发表于 2020-2-15 21:46
你用的什么代码编辑器?

vs code

zltzlt 发表于 2020-2-15 21:52:07

18437986772 发表于 2020-2-15 21:50
vs code

可能是编辑器不知道 this 有 setCustomValidity 方法,这正常

18437986772 发表于 2020-2-15 21:52:53

shake_a_tree@16 发表于 2020-2-15 21:50
可能是因为编辑器反应慢或者不够智能而已

那该怎么调教它呢

18437986772 发表于 2020-2-15 21:54:13

zltzlt 发表于 2020-2-15 21:52
可能是编辑器不知道 this 有 setCustomValidity 方法,这正常

手动输入可用,就是.不出来,我中奖了?

不二如是 发表于 2020-2-15 22:13:04

本帖最后由 不二如是 于 2020-2-15 22:25 编辑

很简单,用 Chrome 打开调试。



测了下“位数不满足”可以弹出“请输入11位数字”。

打个断点,看证据:


PS:使用x.setCustomValidity("") 前先取消自定义,否则下次点击 checkValidity 总返 false


18437986772 发表于 2020-2-16 10:59:29

不二如是 发表于 2020-2-15 22:13
很简单,用 Chrome 打开调试。




this.后的提示代码里没有setCustomValidity,是缺少什么插件吗?
页: [1]
查看完整版本: this.不出来setcustomvalidity手动输入可用是缺少什么吗?