如果值等于空,则Javascript值设置为null

时间:2014-03-19 21:19:28

标签: javascript

现在我正在制作一个时间表,用户可以在其中设置他们的时间,他们的外出时间以及他们在午餐时间。然后我使用一个减去时间和功能的函数。从他们的外出时间的午餐来计算他们的时间,加上可能的加班时间。我想要的是让javascript将加班字段的值设置为'' (即null)如果他们在工作的时间是8小时或更短。

我检查加班的代码是:

// Return difference between two times in hh:mm[am/pm] format as hh:mm
function checkOvertime(timein, timeout, away) {
  // Small helper function to pad single digits
  function z(n){return (n<10?'0':'') + n;}
  // Get difference in minutes
  var subtotal = daytimeStringToMins(timeout) - daytimeStringToMins(timein) - timeStringToMins(away);
  var regularhours = '08:00';
  if (subtotal > timeStringToMins(regularhours)) {var overtime = daytimeStringToMins(timeout) - daytimeStringToMins(timein) - timeStringToMins(away) - timeStringToMins(regularhours);}
    else {var overtime = '0';}
  return   z(overtime/60 | 0) + ':' + z(overtime % 60);
}

然后在我的计算功能中我有这个:

if (checkOvertime(timein, timeout, away).value == '00:00') {
  document.getElementById("date-1-overtime").value = '';
} else {
  document.getElementById("date-1-overtime").value = checkOvertime(timein, timeout, away);
}

因此,如果一个人在工作8小时,那么&#34; date-1-overtime&#34;田野说&#34; 00:00&#34;但我希望它没有放在那里,所以表格打印得更干净。

我想也许我在计算函数中混淆了字符串和整数之间的区别,但我不确定,希望有人可以帮助我!

1 个答案:

答案 0 :(得分:1)

我认为您应该更改此方法以使用正则表达式提取输入的相应部分,然后使用parseint以数字形式获取值。

将其转换为分钟,如果分钟小于或等于480(8 * 60),则返回实际字符​​串。

此外,您无法真正为html参数指定空值。 null与0不同.null基本上是未定义的。

如果用户没有加班,你应该从你的功能中返回超时工作的分钟数,并使用0表示加班费。