CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  JavaScript

妨死我了,大家HELP ME

楼主haitor(流星)2002-07-05 14:18:23 在 Web 开发 / JavaScript 提问

大家看一下下面什么地方错了,为什么调用时总不会执行到后一个条件分支  
      里面的自定义函数绝对正确,因为可以判断到第一个条件分支  
   
  <script   language   =   "javascript">  
      function   checkdate()   {  
          if   (!isDate(trim(document.form1.startdate.value))   &&   !isEmpty(document.form1.startdate.value)){  
                alert("输入正确的日期(年-月-日)");  
                document.form1.startdate.focus();  
                document.form1.startdate.select();  
                return   false;  
          }  
          if   (!isDate(trim(document.form1.enddate.value))   &&   !isEmpty(document.form1.enddate.value)){  
              alert("输入正确的日期格式(年-月-日)");  
              document.form1.enddate.focus();  
              document.form1.enddate.select();  
            return   false;  
          }  
  }  
  </script> 问题点数:50、回复次数:13Top

1 楼runmin()回复于 2002-07-05 14:26:34 得分 0

trim   是what?  
   
  isDate   和   isEmpty   又是what?Top

2 楼qiushuiwuhen(秋水无恨)回复于 2002-07-05 14:30:17 得分 10

没问题呀,你enddate填的是什么?  
   
  <script   language   =   "javascript">  
      function   isDate(str){  
              return   !isNaN(Date.parse(str.replace("-","/")))  
      }  
      function   isEmpty(str){  
              return   trim(str)==""  
      }  
      function   trim(str){  
              return   str.replace(/$\s|\s^/g,"")  
      }  
      function   checkdate()   {  
          if   (!isDate(trim(document.form1.startdate.value))   &&   !isEmpty(document.form1.startdate.value)){  
                alert("输入正确的日期(年-月-日)");  
                document.form1.startdate.focus();  
                document.form1.startdate.select();  
                return   false;  
          }  
          if   (!isDate(trim(document.form1.enddate.value))   &&   !isEmpty(document.form1.enddate.value)){  
              alert("输入正确的日期格式(年-月-日)");  
              document.form1.enddate.focus();  
              document.form1.enddate.select();  
            return   false;  
          }  
  }  
  </script>  
  <form   name=form1>  
  <input   name=startdate   value="   2002-1-1">  
  <input   name=enddate   value="   2002-2-a">  
  <input   type=button   onclick=checkdate()>  
  </form>Top

3 楼qiushuiwuhen(秋水无恨)回复于 2002-07-05 14:30:39 得分 0

没问题呀,你enddate填的是什么?  
   
  <script   language   =   "javascript">  
      function   isDate(str){  
              return   !isNaN(Date.parse(str.replace("-","/")))  
      }  
      function   isEmpty(str){  
              return   trim(str)==""  
      }  
      function   trim(str){  
              return   str.replace(/$\s|\s^/g,"")  
      }  
      function   checkdate()   {  
          if   (!isDate(trim(document.form1.startdate.value))   &&   !isEmpty(document.form1.startdate.value)){  
                alert("输入正确的日期(年-月-日)");  
                document.form1.startdate.focus();  
                document.form1.startdate.select();  
                return   false;  
          }  
          if   (!isDate(trim(document.form1.enddate.value))   &&   !isEmpty(document.form1.enddate.value)){  
              alert("输入正确的日期格式(年-月-日)");  
              document.form1.enddate.focus();  
              document.form1.enddate.select();  
            return   false;  
          }  
  }  
  </script>  
  <form   name=form1>  
  <input   name=startdate   value="   2002-1-1">  
  <input   name=enddate   value="   2002-2-a">  
  <input   type=button   onclick=checkdate()>  
  </form>Top

4 楼fokker(独孤龙)回复于 2002-07-05 14:32:24 得分 0

将   &&   改为   ||Top

5 楼careless(Java.NET)回复于 2002-07-05 14:34:02 得分 10

没有错误啊。第一个条件为真时才会执行第二个Top

6 楼fokker(独孤龙)回复于 2002-07-05 14:35:23 得分 0

将   &&   改为   ||Top

7 楼haitor(流星)回复于 2002-07-05 14:41:34 得分 0

isDate()是判断日期是否合法,trim()是去掉左右空格  
  lastMonth   是得到上个月今天的日期  
  getDate       是得到今天的日期  
   
  <form   name   =   "form1"   action   =   "./ctrl/searchCtrl.jsp?page=1"    
              target   =   "bottom"   method   =   "post"    
              onsubmit   =   "return   checkdate();">  
   
  <input   name="startdate"   size="10"   class="txt"   maxlength   =10  
          value   =<%=lastMonth%>>  
  <input   name="enddate"   size="10"   class="txt"   maxlength   =10    
          value   =<%=getDate()%>>Top

8 楼haitor(流星)回复于 2002-07-05 14:56:42 得分 0

现在的问题是第一个条件是真时,不执行第二个条件Top

9 楼xdspower(杂食菜熊)回复于 2002-07-05 15:34:22 得分 0

<script   language   =   "javascript">  
      function   checkdate()   {  
          if   (isEmpty(document.form1.startdate.value)||!isDate(trim(document.form1.startdate.value))   ){//判断开始时间栏是否为空,或所填数据是否符合格式  
                alert("输入正确的开始日期(年-月-日)");  
                document.form1.startdate.focus();  
                document.form1.startdate.select();  
                return   false;  
          }  
          if   (isEmpty(document.form1.enddate.value)||!isDate(trim(document.form1.enddate.value))){判断结束时间栏是否为空,或所填数据是否符合格式  
              alert("输入正确结束日期(年-月-日)");  
              document.form1.enddate.focus();  
              document.form1.enddate.select();  
            return   false;  
          }  
  }  
  </script>  
  Top

10 楼xdspower(杂食菜熊)回复于 2002-07-05 15:35:21 得分 0

<script   language   =   "javascript">  
      function   checkdate()   {  
          if   (isEmpty(document.form1.startdate.value)||!isDate(trim(document.form1.startdate.value))   ){//判断开始时间栏是否为空,或所填数据是否符合格式  
                alert("输入正确的开始日期(年-月-日)");  
                document.form1.startdate.focus();  
                document.form1.startdate.select();  
                return   false;  
          }  
          if   (isEmpty(document.form1.enddate.value)||!isDate(trim(document.form1.enddate.value))){//判断结束时间栏是否为空,或所填数据是否符合格式  
              alert("输入正确结束日期(年-月-日)");  
              document.form1.enddate.focus();  
              document.form1.enddate.select();  
            return   false;  
          }  
  }  
  </script>  
  Top

11 楼haitor(流星)回复于 2002-07-05 15:43:22 得分 0

时间可以为空Top

12 楼minitigger(阿修罗十三之雪)回复于 2002-07-05 15:44:36 得分 30

你自己用alert输出需要的值和走的分支信息自己调就是了,不行每一句后面都加一个alert,不相信调不出来。Top

13 楼haitor(流星)回复于 2002-07-05 16:11:08 得分 0

就是调不出来啊,我都要晕了。它就是不到第二个IF去Top

14 楼qiujsh(www.chinascsoft.com)回复于 2002-07-05 18:12:40 得分 0

isdate是VBSCRIPT里面的函数,能否直接调用?我不清楚  
  我是这样写的,没问题  
  <script   language="vbscript">  
      function     visdate(ldate)  
  0A         visdate=isdate(ldate)    
      end   function  
  </script>  
  再调   用visdate()就行了  
  ================================================================  
   
  CSDN   论坛助手   Ver   1.0   B0402提供下载。   改进了很多,功能完备!  
   
  ★     浏览帖子速度极快![建议系统使用ie5.5以上]。   ★     多种帖子实现界面。    
  ★     保存帖子到本地[html格式]★     监视您关注帖子的回复更新。0D ★     可以直接发贴、回复帖子★     采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!    
  ★     支持在线检测程序升级情况,可及时获得程序更新的信息。  
  0A  
  ★★   签名     ●      
            可以在您的每个帖子的后面自动加上一个自己设计的签名哟。  
   
  Http://www.ChinaOK.net/csdn/csdn.zip  
  Http://www.ChinaOK.net/csdn/csdn.rar  
  Http://www.ChinaOK.net/csdn/csdn.exe         [自解压]  
   
  Top

相关问题

  • 我的思想死了!!!!HELP ME!!
  • PartitionMagic Pro 7.0 害死我了,Help me!!!!!!!!!!!!!!
  • 急死人!!!help me!!!
  • help me,help me
  • help me,help me!!!
  • help me,help me !!
  • help me help me
  • help me help me
  • 帮帮我,help me !!!
  • help me ~~~~help me ~~~~help me ~~~~help me ~~~~help me ~~~~

关键词

  • .net
  • csdn
  • 执行
  • 帖子
  • chinaok
  • 分支
  • isdate
  • 条件
  • 日期
  • 没问题

得分解答快速导航

  • 帖主:haitor
  • qiushuiwuhen
  • careless
  • minitigger

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo