老师请问为什么都输入完成之后才显示密码错误和验证码小于4位

老师请问为什么都输入完成之后才显示密码错误和验证码小于4位

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>arguments</title>

</head>

<body>

<script>

    var userName=prompt("请输入用户名");

    var userPwd=prompt("请输入密码");

    var sure=prompt("请输入验证码");

    function login(){

        if(isNaN(arguments[1])){//补充代码

          alert("密码错误");

        }

        if(arguments[2].length<4){//补充代码

          alert("验证码不小于4位");

        }

    }

    login(userName,userPwd,sure);

</script>

</body>

</html>


正在回答 回答被采纳积分+1

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

3回答
qq_慕妹2226526 2020-02-18 14:36:53

你的程序设计得就有很大问题! 按照你设计机器思路(不是你的). 

3个prompt方法,先取得了户名,密码,验证码的值.然后分别保存到了你申请的3个变量中.

然后,你再调用的函数,才把这3个函数传入进去.这个时候函数参数才达到3个(这里你设计的大坑,你想过没,假如传的是2个参数呢?你的

arguments[2]根本就不存在,何来的

arguments[2].length   ????????????????????????????????????

)

所以你得重新设计,比如:

    <script>

        var userName = prompt("请输入用户名");

        var userPwd = prompt("请输入密码");

        if (isNaN(userPwd)) {

            alert("密码错误");

        } else {

            let sure = prompt("请输入验证码");

            if (sure.length < 4) {

                alert("验证码不小于4位");

            }

        }

    </script>


  • 传入你写的函数后才开始判断!所以,会是先弹出输入框,然后3个数都判断完成后才弹出的对话框.你得得到一个值就判断,并抛出错误信息.
    2020-02-18 14:43:39
好帮手慕言 2020-02-16 18:07:41

同学你好,如果第二个输入框中的内容不是数字,第三个输入框中输入的长度小于4,那么会先提示密码错误,再提示验证码不小于4位。

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

好帮手慕言 2020-02-16 15:49:37

同学你好,代码是从上往下的顺序执行的,因此会在三个弹窗里都输入内容之后,再提示。

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

  • 提问者 慕瓜9075555 #1
    从上到下的顺序不是应该先提示密码错误吗
    2020-02-16 16:29:06
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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