妨死我了,大家HELP ME
大家看一下下面什么地方错了,为什么调用时总不会执行到后一个条件分支
里面的自定义函数绝对正确,因为可以判断到第一个条件分支
<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




