【发布时间】:2016-03-30 12:27:19
【问题描述】:
HTML 表单:
<form
name="CheckIn"
method="post"
action="check.asp"
onsubmit="return CheckBreakTime() && CheckTime();"
>
我在提交时调用了两个函数,函数返回 true 或 false,但函数只有在它是“第一个”时才有效,例如,如果我说“onsubmit="return CheckTime() && CheckBreakTime();"”,如果我先调用 ChecKBreakTime,则只有 CheckTime 才有效。
函数 (JavaScript) :
function CheckBreakTime(){
if (document.getElementById('breakco').checked) {
var BKTimeDif1 = '<%=BTimeDif%>';
var var1 = 20 ;
var sum1 = var1 - BKTimeDif1 ;
if (BKTimeDif1 > 10 && BKTimeDif1 < 21) {
alert("You were on a break longer than 10 minutes,You must wait " + sum1 + " minutes to pass to check out from break. ");
return false;
} else {
return true;
}
}
else {
return true;
}
}
function CheckTime() {
if (document.getElementById('breakci').checked) {
var TimeDif2 = '<%=BTimeDiff%>';
var TimeDif1 = '<%=TimeDif%>';
if (TimeDif1 < 120) {
alert("You must work at least two hours before you can go on a break.");
return false;
} else {
if (TimeDif2 != 0 && TimeDif2 < 120) {
alert("You must work at least two hours before you can go on another break.");
return false;
}
else {
return true;
}
}
}
else {
return true;
}
}
以及我在 JavaScript 中输入的 VBScript 代码:
Dim TimeDif
TimeDif=Round(Csng(DateDiff("n", (HourList.Fields.Item("checkInTime").Value), (Now()))), 2)
Dim BTimeDif
If Not IsNull(HourList.Fields.Item("breakCheckIn").Value) Then
BTimeDif = Round(Csng(DateDiff("n", (HourList.Fields.Item("breakCheckIn").Value), (Now()))), 2)
End If
If Not IsNull(HourList.Fields.Item("breakCheckOut").Value) Then
Dim BTimeDiff
BTimeDiff = Round(Csng(DateDiff("n", (HourList.Fields.Item("breakCheckOut").Value), (Now()))), 2)
End If
VBScript 代码工作正常,它返回它需要的内容,JavaScript 得到它。有人能告诉我是什么问题...
【问题讨论】:
-
如果您的服务器端 vbs 正确填充了 TimeDif 和 BTimeDif 的值,那么我可以建议这是一个 javascript 问题并且不需要其他两个标签吗?
-
您在 CheckTime 中将数字与字符串进行比较。
-
问题是我检查了由于 vbscript 而没有显示的按钮,所以 javascript 只检查第一个。答案是把隐藏的输入放在相同的 id 上。对不起,如果我冒犯了,对不起我的语法不好。
标签: javascript