00:00
那咱们第二小节呢,咱们接着往下看啊说。什么用户名啊,必须带什么对吧,这个用户名比较矫情嘛。什么不能为空啊,必须在六到14位之间啊,又来个得含有什么数字和字母是吧?只能有数字字母,不能有其他符号对不对?哎,然后他说你看第五点说统一失去焦点验证。焦点一失去就验证,那你就说我这个出的框在这个位置应该有个对吧。是不是失去焦点啊,失去焦点,那我们失去焦点这块呢,我们就可以写一写我们的GS代码啊,window.download load等于方式页面全部加载完毕之后,我们在这里首先第一个给谁给。给用户名。文本框绑定什么?不是。
01:01
事件对不对,怎么做呀,先获得到它。怎么获得element元素,这个元素获得document.get element by ID,你这个代码不能背啊,你下一周不能背这个代码啊,你不能说老师是怎么写的,一步一步,你下一周得转成你自己的写法。这个顺序,这个步骤必须是您自己写出来的。你写的代码跟模特可能不一样,但最终达到的效果可能是一样的。比如这个变量名,你得自己起名啊。自己起名儿。来这块的ID就是这个ID呗,拿到这个。对象之后给这个对象onl一下function,首先我觉得你是不是应该写一点测一点,一定要这样啊。
02:03
不要EEEE1顿写,最后一次,诶,跑不出来,哪的问题呢,到处是问题,解决了这个那个问题,那个问题那个问题,这就是写代码了,他不会写,应该是写一部,至少确保你当前所写的代码没有任何问题,再继续往下进展,打开,打开之后F12掉出来,就看着它啊,控制台看着,一旦有错爆红,马上解决,听懂了吧,错误多了,你很难去解决,一个错误好解决,来光标在这儿失去焦点。找一个弹框了,下边没错,这说明我们目前所写的代码还没什么太大的问题。接下来我们在这里失去焦点,你的判断逻辑是什么?失去焦点首先第一问题得获取用户名。对吧,你想想也是啊,人家说用户名不能为空,用户名不能为空,你不得先获取用户名吗?对不对,你怎么获取用户名啊,你上面这个username element,这个就是我们的input标签,Input标签点value这个属性就可以拿到什么username,你拿到这个username之后,你username必须得去除空白啊,对吧?点train去除空白之后返回的是username。
03:26
这一点你得有这个意识啊,叫去除什么空白江湖,有的人说,老师我没有这个意识啊。慢慢就有了,刚开始你肯定是没有的,还有一个问题我问大家,如果您现在没有这个意识,将来写完给了测试测试,那边是不是会测出问题。测出问题,你是不是在接着改代码就行。对吧,所以说有经验的程序员上来会把这个写上,没有经验的可能就是最后bug出现之后呢,程序那个测试人员让他去改。但不管哪一个,最后都能写上这个代码,好再测一遍,各位再测一遍,确认一下到底行还是不行。
04:09
来ABC再走一个,拿到了DEF再走一个,拿到了。对吧,就是说写什么我们都可以拿到,拿到这个用户名之后,大家再往下走,该怎么做呀,判断用户名是否为空啊,对吧,怎么判断呀,你有多种方式对不对,诶怎么写。嗯。直接这样写行不行?如果这个为空串。是不是这个。
05:01
这是不是false啊?不是有个布尔函数吗?这个布尔函数。是不是会将这个不是不玩类型的数据转换成不玩类型,对吧,那这个username呢,它如果转换过来这个地方如果条件为真的话,就代表username,它是不为空程序到这儿代表什么,代表username不是什么。空字符串。那这个条件成立的是代表什么呀?代表user name是空字符串,这个逻辑对不对?对吧,当然你还有别的方法。或者说我们先演示一下各位啊,就看看,那就直接username吧,等于什么username吧,然后这块的话,我们就说是空字符串行不行。
06:14
Username是空字符串,接下来我们再打开,我们再刷新一下,然后接下来我们在这呢,诶什么也不学,走一个孔子舞团。ABC写上,那就是ABC呗。或者说你写空格,空格写一大堆空格,一大堆空格,什么也没有,就一大堆空格,接下来他会告诉你怎么着啊。U的name是什么空字号,因为什么?因为你已经把前后空白给他怎么着去掉了啊,然后回来之后呢,你再写上ABC再走你看。没问题吧,你可以采用这种方式,你也可以采用其他方式,在这我们都可以见识一下怎么写啊。If怎么着me.S等于可以呀,等于等于零说明什么呀?是是不是空块啊?还有一种方式怎么写if怎么着U的name要等于等于等于谁?三个等号,两个等号都可以等于等于它,这说明什么呀?
07:30
这是不是空字符串啊,空字符串就是用户名。为空对不对?L是不是就不为空?用户名不为空呗,这几个判断逻辑大家都要会,可以直接采用这种方式,也可以点烂,也可以采用这种方式。空转不就是这个德行吗?您已经去除前后空白了呀,你不用考虑别的啊,用户名没空的话,你应该怎么办?我们顺着这个逻辑往下走就行,各位还是那句话,您不要背我的代码。
08:10
我们笨的一个目的就是用户名不能为空,你想想用户名不能为空,首先第一步你不得先获取用户名吗?获取了用户名,你把前后空白一去,然后接下来你就把它判断就行了。那如果说等于未空的话,我们就提示信息呗,提示信息你是往这个span标签里边提示对吧?好各位,既然你要往这个span标签里边提示这个地方else是不是也有可能会用到这个span标签,所以说这个时候你就应该能想象到我应该是在这个if语句的外边。去获取这个什么user name的什么SPA标签吧,那这个SPA标签怎么获取啊?D,这个方法我们一直在用,拿到了这个元素之后。
09:12
我们紧接着应该是拿着它点HTML,或者说是什么T都行,因为这个上面的样式是不是已经有了,所以接下来样式在这啊。对吧,接下来我们在这就直接怎么写就行了,就是用户名不能为空呗。那接下来我们验证一下,我们刷新来。对吧,写了一大堆空格来。对吧,哎,这边我们再来。但是这个光标要回去啊,光标一回去你得清空吧,所以光标回到这个框上,这个事件叫福克斯。
10:10
对吧,所以我们应该在我们的程序当中看清楚这一堆代码是为了绑一个。对不对。我们是不是应该还是这个代码。往下走对齐啊是是这吗,往下走它不是on on。就说白了,这个是给什么username这个文本框绑定,获得焦点事件,当我获得焦点,我需要把什么。把这个标签清空,那你需要这个东西在这用的话。
11:06
你看杜老师在写程序的时候,是不是也不是一次成型也得改呀?不断的改,您别老想着下去之后敲代码,照着抄上来第一件事儿就放到这个位置上,你怎么知道放到这儿了。懂我说的意思吗?我今天把代码写成了,我要不提醒这个事儿,咱们班的同学们就有可能把我代码打开,老师写的是先获取这个span,行,我也先获取这个span。你觉得你的开发思路对吗?你那叫抄啊,你如果说能把代码最初写在这个位置上,后期有一种意识,能把这个代码给他改到上面,这才叫真正的开发。这叫你自己写代码,听懂了吗?你不能捡现成的,我课堂上把代码写完了,您上来就抄这句话,您怎么知道这句话写这儿啊?这句话为啥不能写到里边,为啥写外边?
12:09
如果说你确实对吧,你的这个预测能力很强。你有这个能力。写到这儿,我佩服你啊,我佩服你,但是对于初学者来说,一般达到这种级别的很少,几乎没有。这种程序都是一边写一边改,一边写一边改,一边写一边改,这是自己的开发思路,当你挪到外边之后,你还得考虑这个元素能不能获取到,因为这个ID它得必须存在才行。我们一看load事件就没问题了,因为load事件是页面加载完毕之后才会触发,页面加载完毕之后这个ID已经存在了,所以这个SPA我们肯定能拿到,对不对?所以接下来我们这个代码就又省了,各位在这我们可以写什么点什么in哪什么text,后面写什么呀,空串就行了,当我们获得焦点是不是把这个内容清掉,所以接下来我们再来看我们这写ABC,走一个没事删掉,再走一个有事回去没事。
13:20
对吧,那假如说诶,就是现在这个好像看着没问题啊,是不是没问题,好空格写了一大堆啊,是不是一堆空格一堆空格,我们回来是不是报报错呀,报错我回去我问大家你这个位置是不是最好给它清空。是。我再说一次,有同学可能不太懂,光标在这儿,光标在这闪,然后回来之后呢,这报错,回去之后这清空了,这边清空,这里边是不是也应该清空,所以这里边儿清空你。得继续往下做,这是清空谁,清空SPA对吧?那你还得清空谁呀,清空非法的白领。
14:06
合法你清啥呀?人家好好的写了个ABC进去对吧?然后手一得瑟,往回一点,ABC没了,客户肯定不满意啊。因为你这个位置是focus focus是获得焦点,也就是你每一次获得焦点都会走这个回调函数,对吗?那我正常的情况下。我回去了。正常的情况下,我回去了,你不应该把我ABC干掉啊,是不是来我们现在这个代码,如果不考虑这个问题,就把ABC就干掉了,这块的username element在这个位置,是不是点Y就行了。对不对,这样写就是有bug的呀。来试试,空白不行回去,空格一大堆来,出问题了再回去。
15:08
很好吧,ABCDEF没事吧,回去干掉了,你这个不行啊,就理解什么意思,就是合法的情况下,您不能给清听懂了吗。也就是说你应该有个编程逻辑是什么?If不合法,你才做这件事儿。你看我一般写代码都是这样,写汉语,我不知道该咋写,我都写汉语懂吗?不合法能看懂吗?就if不合法就走这个呀,那你不合法怎么就不合法。怎么就不合法了?记住了,后边只要这个位置显示着红字体,就代表这个不合法。听懂了吗?所以这个代码该怎么写呀?
16:01
应该看一看这个。如果不等于它。是不是就是不合法,但你得把这行代码移动到下边。如果您这行代码在上边,你上来是不是就给他清了。是不是在清除错误消息之前?我们inner text,只要有东西就代表非法。对不对,这样这个问题就解决了。不行,回去空格一大堆,不行回去清空了ABCDF回去你看没事,你看没事,为啥这一次光标回去就没清空呢?因为我合法呀。
17:00
有老师合法不合法,我靠什么判断?我靠红边有后边有没有红字体啊。这能看懂吧?这个span标签的text只要不等于空,说明啥?只要不等于空,这是非法啊。不等于空乘是非法呀,那怎么能是合法呢同学。不是,这个还没理解啊,就是说我光标离开是不是就意味着我这个地方是不不是空框吧,我空格写一大堆写进去,我有这个红红色字体是不是代表是非法的,只有我有红色字体不是空框的时候,我是不是才把这个框里不等于清空。
18:01
ABCDF,没有没有回去,别把别把人家干掉啊,这个。这俩能换位置吗?哎,这俩能换位置,你还用着,你上来把那干掉干啥呀。对不对,行这个环节大家没啥疑问是吧?行了,那我问你程序能到else,这说明啥?用户名不围攻啊,不围攻应该继续判断长度六到多少14。怎么判断if user nameme.Les小于六,或者说我们user nameme点要大于14,我们认为都是非法的。对不对,那这说明什么?用户名长度非法,那到这是用户名长度合法呗,就是因为剑道。
19:09
对吧,你可以用别的方式,我这就用IF1000套了,如果说你为空就走这个I,就代表不为空,你不为空就得判断长度,判断长度的话,如果是这个就是非法,如果这个是合法非法,你又得走这个呀。你得提示吧,用户名长度必须在六到什么14之间,对不对,哎,那咱们再来看一看。空串不行,ABC不行。回去ABCDF够了,回去不请。对吧,一顿夸夸一顿写,抄了吧,抄了回去清了。是不是ABC不行,回去清掉啊,ABCDF行了,回去没事啊。
20:02
好,那这样的话,到这用户的长度合法,我们应该继续判断是否含有特殊符号对吧,所以正则表达式就上了呀。正则怎么写啊?他开始,他结束。大A到大Z,小A到小Z,零到九。这怎么写?再往下打括号。那其实也不需要那个六到14了,因为上面已经控制住了,如果到这儿的话,就肯定是六到14了。对吧,所以直接写一个加号。对吧,就这个就完事了啊,那rep.T的这个方法或者函数还记得吧,把上面的这个用户名是不是获得的用户名再拿过来放到这,那这个时候会返回一个OK对吧,如果说OK那就OK else就是不OK呗。
21:19
那不OK,就代表什么意思啊,用户名最终合法,这个是用户名中含有什么特殊符号,含有特殊符号的话,你走的是不是这个呀,你说这块说用户名只能由什么。数字和字母组成。那至于河马干啥,我不知道干啥,我先在这放着行不行,先放着啊,来走一个。ABC不行回去,空格一大堆,不行回去。
22:00
对吧,不行回去是吧,ABC,然后百分号,然后ABC走一个不行。只能由数字和字母组成,回去ABC0 123走一个可以。对吧,这样的一个用户名不就控制住了吗。你看这个代码写的比较多比较多啊,但这个没办法,只能这样写呗。
我来说两句