有两个疑问

有两个疑问

<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="UTF-8" />

        <title></title>

    </head>

    <body>

        <form action="" method="get">

            <input type="url" oninput="checkit(this)">

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

        </form>

        <script>

            function checkit(obj) {

                var it = obj.validity;

                //补充完整

                if(it.typeMismatch===true){

                    obj.setCustomValidity("请输入带http://的正确地址!");

                }else{

                    obj.setCustomValidity("");

                }

            }

        </script>

    </body>

</html>

1、不点击输入框直接点提交按钮的话没有任何反应,点击输入框但是什么都不输入就点提交按钮的话也没有任何反应

2、输入内容后也不会有提示,直到点击了一次提交按钮后,如果内容不符合要求才会有提示;而在这之后只要修改内容后,内容不符合要求提示就会一直在;而只要输入了http:提示就会消失了并且就会提交成功【整个输入框只有http:也会成功】,不应该是有了http://才能提交成功吗?

正在回答

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

2回答

同学你好,对于你的问题解答如下:

  1. 因为oninput事件是监听输入框输入时的事件,必须输入框中输入(或删除)内容了才可以触发该事件,直接点击提交按钮和点击输入框但是什么都不输入就点提交按钮这两种情况,不会触发oninput事件,所以没有任何反应。

  2. 输入框输入内容时会触发输入框的oninput事件,设置提示信息,但是只有提交表单时,才会进行验证,所以需要点击一次提交按钮才会出现提示信息。

  3. 老师测试同学代码,只输入http:不会成功,会继续显示提示信息,同学可以再测试下。

    http://img1.sycdn.imooc.com//climg/5e9911380990e32405560206.jpg

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

  • Aurora_Meteor 提问者 #1
    只输入http:确实不会提交,但是再任意加一个/以外的东西,就可以提交成功了。 我刚刚尝试了一下,写http:a也会提交成功,写个htatwp:也会成功,只要有hhtp:这几个字符,再加上任意字符就能成功了
    2020-04-17 12:09:58
好帮手慕慕子 2020-04-17 14:23:03

同学你好,老师测试下,确实存在同学说的这种情况,是浏览器解析问题,同学不用纠结这些情况的,重点是练习了解下typeMismatch和setCustomValidity()这两个知识点就可以了。

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
3.WebAPP开发与小程序
  • 参与学习           人
  • 提交作业       622    份
  • 解答问题       6815    个

微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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