A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 王小刚 于 2012-8-24 01:11 编辑

今天做一个表单效验的时候发现在一个问题。
要实的效果就是个人简介文本不能为空,否则就不能提交。我在判断的时候碰到的问题。
在1处的条件判断处,我分别用 formNode.txt.value == null , formNode.txt.value == "",结果点按钮的时候都能进行提交,也就是说在文本框中什么都不填,这二个条件都不满足,但是当我使formNode.txt.value ==" " 时,如果什么都不填,条件就满足了,也就是说不能提交。但是新的问题出现了,如果我在文本框中填个空格,那么也能提交。如何才能做到什么都不填和填空格,都不能提交呀。还有就是解释下这三者之间的区别,null,""," " ,(注:""和" "的区别是第二个中间多了一个空格) 。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<title>无标题文档</title>
<script type="text/javascript">
function checkText(formNode){
if(formNode.txt.value == "")//1处
  event.returnValue = false;
else
  event.returnValue = true;
}
</script>
</head>
<body>
<form action="127.0.0.1">
个人简介</br>
    <textarea name="txt" > </textarea></br>
    <input type="submit" value="提交数据"  style="font-size:12px"/>
</form>
</body>
</html>
问题补充,我测试下分别用 formNode.txt.value == null , formNode.txt.value == ""的时候,文本框什么都不填能提交出去。用alert(formNode.txt.value ),
发现这个时候弹出的对话框,是空的。
那么这个空用什么来表示呢。它既不是=null,又不="",那到底代表什么呢?

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 赞一个!

查看全部评分

10 个回复

倒序浏览
length不能用吗?个人简介文本的长度
回复 使用道具 举报
请问楼主,这是方立勋老师的JAVA WEB视频教程里面的内容吗?
回复 使用道具 举报
只验证不为空可以用
if(str==null || str==""){
   alert("不能为空")
}
如果需要严格的验证是用正则表达式
var strReg= /^[A-Za-z0-9]+$/;
        var str= document.getElementById(str).value;
        if(strReg.test(str))
        {
            alert("输入正确");
           
        }else{
            alert("输入不正确");
        }
null表示什么都没有,不占用内存空间,""是一个空字符串," "是一个空格的字符串
回复 使用道具 举报
赵俊杰 发表于 2012-8-23 23:28
请问楼主,这是方立勋老师的JAVA WEB视频教程里面的内容吗?

不是呀,javascript做表单效验的时候碰到的。
回复 使用道具 举报
zrq523233 发表于 2012-8-24 00:00
只验证不为空可以用
if(str==null || str==""){
   alert("不能为空")

你上面的验证不为空的方法,行不通哦,早试了,这要写照样能提交。
还有下面的正则,这个意义不大哦,个人简介随便写什么都行,就是不能什么都不填。
只要填了,就能提交。
回复 使用道具 举报
王陶成 发表于 2012-8-23 23:22
length不能用吗?个人简介文本的长度

你这个肯定可以,但是如果你限定为5个以上,那么我填5个空格是不是也能通过哦
回复 使用道具 举报
张_涛 黑马帝 2012-8-24 09:11:11
8#
王小刚 发表于 2012-8-24 01:03
你这个肯定可以,但是如果你限定为5个以上,那么我填5个空格是不是也能通过哦  ...

试试各种浏览器测试,效果不一样的..>
回复 使用道具 举报
张_涛 发表于 2012-8-24 09:11
试试各种浏览器测试,效果不一样的..>

我用的IE 和360试了下 差不多哦 。。
回复 使用道具 举报
张_涛 黑马帝 2012-8-24 09:38:28
10#
王小刚 发表于 2012-8-24 09:26
我用的IE 和360试了下 差不多哦 。。

火狐...
IE、360,那不是一个内核的么...
回复 使用道具 举报
null表示定义了变量但还没有在内存分配空间,只有实例或赋值后才分配空间,而“”就是一个空字符串。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马