老师关于判断登录用户名密码是否为空

老师关于判断登录用户名密码是否为空

我一开始写的是:

if(use===''&&pass===''){

          showToast('用户名或者密码不能为空!!')

          return

        }

不论怎么点击都和没有判断一样,

然后改为!use&&!pass不论怎么样都登录不了

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

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

3回答
好帮手慕言 2021-07-31 11:44:49

同学你好,使用逻辑或(||)时,只要有一个操作数为true,那么返回的就是true。第一个输入框中输入内容,第二个输入框不输入内容,结果会是true,进入判断,页面提示“用户名或者密码不能为空!!”。


使用逻辑与(&&)时,只要有一个操作数为false,那么返回的就是false,第一个输入框中输入内容,第二个输入框不输入内容,结果会是fasle,不会进入判断,会发起请求,登陆成功。


祝学习愉快~

好帮手慕言 2021-07-30 17:45:18

同学你好,解答如下:

1、如果写法是if(!use && !pass){}:

data中没有use和pass,因此use和pass会是undefined,undefined转换为布尔值为fasle,取反后是true,进入判断,提示“用户名或者密码不能为空!!”在输入框中输入内容,use和pass依旧是undefined,所以登陆不了。

2、如果写法是:if (use === '' && pass === '') {}:

use和pass是undefined,不等于空字符串,所以不符合条件,不能进入判断,会登陆成功。

修改如下:将username和password解构出来,有一个为空都不能登陆成功,需要使用||

http://img1.sycdn.imooc.com//climg/6103cb9609babe4106510234.jpg

祝学习愉快~

  • 提问者 慕瓜0126554 #1

    ||是或,它有一个符合就可以登录,&&的且,两个都必须符合才能登录,为什么用或

    2021-07-30 21:26:18
好帮手慕言 2021-07-30 11:53:50

同学你好,建议把登陆页面的完整代码粘贴上来,老师帮助排查,祝学习愉快~

  • 提问者 慕瓜0126554 #1

    <script>

    import { reactivetoRefs } from "vue"

    import { useRouter } from "vue-router"

    import { post } from "../../utils/request"

    import Toast, { useToastEffect } from "../../components/Toast"


    const useLoginEffect = (showToast=> {

      const router = useRouter()

      const data = reactive({ username: ""password: ""})

      const handleLogin = async () => {

          try {

            const { usepass } = data

            if(!use && !pass){

              showToast('用户名或者密码不能为空!!')

              return

            }

            const result = await post("/api/user/login", {

              username: data.username,

              password: data.password

            })

            if (result?.errno === 0) {

              localStorage.isLogin = true

              router.push({ name: "Home" })

            } else {

              showToast('登录失败')

            }

          } catch (e) {

            showToast('请求失败')

          }

        }

        const { usernamepassword } = toRefs(data)

        return { usernamepasswordhandleLogin }

    }

    const useRegisterEffect = () => {

      const router = useRouter()

      const handleRegisterClick = () => {

          router.push({ name: "Register" })

        }

        return { handleRegisterClick }

    }


    export default {

      name: "Login",

      components: { Toast },

      setup() {

        const { showtoastMessageshowToast } = useToastEffect()

        const { usernamepasswordhandleLogin } = useLoginEffect(showToast)

        const { handleRegisterClick } = useRegisterEffect()

        

        return { showtoastMessage,

        handleLoginhandleRegisterClick,

        usernamepassword }

      }

    }

    </script>


    2021-07-30 14:52:57
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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