Javascript 返回NaN结果的时间计算
我不太擅长脚本,但我已经创建了一个PDF可填充表单来计算工作时间。当没有输入数据时,结果字段显示为Javascript 返回NaN结果的时间计算,javascript,Javascript,我不太擅长脚本,但我已经创建了一个PDF可填充表单来计算工作时间。当没有输入数据时,结果字段显示为NaN:NaN,如果字段为空,是否有方法隐藏此信息 我使用的脚本公式是 var hrsStart = parseInt(this.getField("hrsstart1").value.split(":")[0]); var minStart = parseInt(this.getField("hrsstart1").value.split(":")[1]); var hrsEnd = parseI
NaN:NaN
,如果字段为空,是否有方法隐藏此信息
我使用的脚本公式是
var hrsStart = parseInt(this.getField("hrsstart1").value.split(":")[0]);
var minStart = parseInt(this.getField("hrsstart1").value.split(":")[1]);
var hrsEnd = parseInt(this.getField("hrsend1").value.split(":")[0]);
var minEnd = parseInt(this.getField("hrsend1").value.split(":")[1]);
if (minStart > minEnd) {
var minRez = 60 + minEnd - minStart;
var hrsRez = hrsEnd - 1 - hrsStart;
} else {
var minRez = minEnd - minStart;
var hrsRez = hrsEnd - hrsStart;
}
this.getField("Totalhrs1").value = hrsRez + ":" + minRez;
当没有输入数据时,结果字段显示为
NaN:NaN
,如果字段为空,是否有办法隐藏此信息?使用NaN checker函数isNaN(),如下所示:
if(!(isNaN(hrsRez)) && !(isNaN(minRez)) {
this.getField("Totalhrs1").value = hrsRez + ":" + minRez;
}
试试这个:
var startValue = this.getField("hrsstart1").value;
var endValue = this.getField("hrsend1").value;
var timeValue = '';
if(startValue && endValue)
{
var startArr = startValue.split(":");
var endArr = endValue.split(":");
var hrsStart = parseInt(startArr[0]);
var minStart = parseInt(startArr[1]);
var hrsEnd = parseInt(endArr[0]);
var minEnd = parseInt(endArr[1]);
if(!isNaN(hrsStart) && !isNaN(minStart) && !isNaN(hrsEnd) && !isNaN(minEnd))
{
var minRez, hrsRez;
if (minStart > minEnd) {
minRez = 60 + minEnd - minStart;
hrsRez = hrsEnd - 1 - hrsStart;
} else {
minRez = minEnd - minStart;
hrsRez = hrsEnd - hrsStart;
}
timeValue = hrsRez + ":" + minRez;
}
}
this.getField("Totalhrs1").value = timeValue;
当输入数据时,它似乎工作正常,我有5天的时间来工作,并用不同的开始和结束时间进行了测试,它工作了。我在计算中添加了第二部分,以腾出午餐时间,我只是复制了您的脚本并对其进行了更改,但它不工作,如果更改了值,也不会更新。第一部分很好,但第二部分不行,所以它需要使用Totalhrs1-午餐HRS1你能帮我吗@PinetreeI不知道如何帮助您,除非您将代码粘贴到这里。它不允许我添加到这里,因为它太长了。抱歉,但我使用了您在上面给我的脚本,并将hrsstart1更改为Totalhrs1,将hrsend1更改为午餐休息时间1,因此它会取总数并扣除午餐休息时间@松树你可以编辑你的问题,将你的第二部分代码粘贴到那里,让人们更清楚地了解你的问题,我不知道我是否能帮上忙,但有人可能会帮上忙。