Js input属性value的判断

57f59c2b0001967205000152.jpg

第一种方法获取的input对象,然后判断对象value的值来触发点击事件,可以成功触发

57f59c2b0001e2ba05000179.jpg

57f59c2c00017d7b02350086.jpg

第二种方法获取的input.value的作为对象,然后判断该对象的值来触发点击事件,不能触发


求解。。。


小轩碧落西窗雪
浏览 4861回答 11
11回答

宝慕林3443058

首先需知: 1:6大类型及值存储在栈内存里面; 2:对象及属性值存储在堆内存里面,可由栈内存里地址找到; 这样再回过头看就很明了了: 第一种情况:cbn在栈内存里创建空间,cbn表达式右边等于对象,电脑无法给你在栈内存里存对象,只好给你一个相同的地址,即复制了对象的地址,以16进制形式存入cbn,后面cbn.value就能顺势进入对象; 第二种情况:cbn在栈内存里创建空间,cbn表达式右边等于字符串(对象的value属性是string类型),电脑觉得你要的是一个和对象的value相同的string类型数据,那我就把这个字符串数据复制一个给你吧,因为栈内存里可以存字符串数据的,那么cbn就是存的字符串,不再是第一种情况里的地址,自然不会去影响到对象;

qq_小狼丶_03974697

这个要用正则表达式的中文判断的,多的不说了,百度一下就知道了

因为所以123

function fun1(){       var userobj=document.getElementById('user').value;   var tdobj=document.getElementById("bb");   if(userobj==""){              tdobj.innerHTML="<font color='red'>内容不能为空</font>";   }   }我的可以触发失去焦点事件,没看到你的更多代码,无从判断原因

因为所以123

我的可以触发失去焦点事件,没看到你的更多代码,无从判断原因

拿不到钥匙的车放不进手机的歌

有点乱,个人建议不要第二个var了 需要用的时候直接ctn.value就好

杜发明

我明白你的意思了,你在第二个方法里面alert一下ctn看是否被赋值,判断value时在用一个    || ctn != null

小轩碧落西窗雪

对象获取的不一样

小轩碧落西窗雪

判断是不是错过了什么

这都不会

单纯这样看的确是没有什么区别。还有更多代码吗?

慕运维6514616

楼下净TM扯淡,鄙视他们,看我的。.getElementById()获取的是一个对象,你判断一个对象等于什么,没这么做的,也没什么意义。.getElementById().value获取的是对象的属性,属性一定是6种基本数据类型里的一种,或是字符串,或是布尔值,能够进行比对判断。而且,要两个对象严格相等,除非是经过赋值运算,否则即使是用构造函数创建,也不全等。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript