1

我有一个非常广泛的 HTML 表单,用于在复杂的制造过程中收集数据。数据收集要求用户在大约 80 个单独的字段中标记日期和时间——我使用按钮作为每个数据字段的标签。

我有一个 JavaScript 函数,它可以为单个字段提供所需的结果 - 但我不想复制函数的代码并更改每个所需条目的名称。

我是 Javascript 的新手,只是 HTML 的初学者——但我知道这是可以做到的……我只是不知道怎么做。我知道这与传递我的 HTML 字段的 ID 标记(进入循环?)以用作代码中的变量有关......但我不清楚如何。

这是我正在考虑用于我的时间戳的代码(为 1 个字段设置):

<script type="text/javascript">
function getClockTime()
{
   var now    = new Date();
   var hour   = now.getHours();
   var minute = now.getMinutes();
   var second = now.getSeconds();
   if (hour   < 10) { hour   = "0" + hour;   }
   if (minute < 10) { minute = "0" + minute; }
   if (second < 10) { second = "0" + second; }
   var timeString= hour +
                    ':' +
                    minute +
                    ':' +
                    second
document.getElementById("txtTime").value = timeString;
}
</script> 

如果有人能给我一个关于如何处理这个问题的线索,我肯定会很感激。

4

3 回答 3

2

首先,如果你修改你的 JS 函数以返回一个值,你可以多次调用它并重用代码。所以替换:

document.getElementById("txtTime").value = timeString;

为了

return timeString;

然后,当您有可用的 jQuery 时,您可以遍历需要日期的字段。如果你给他们一个“dateField”类(例如),即<input class="dateField" type="text" name="whatever" />,你可以这样做:

$(".dateField").val(getClockTime());

编辑:其他答案正确地指出调用 getClockTime() 是不必要的密集(它也可能会让你得到不同的时间)。因此,正如建议的那样,一个更简单、性能更好的版本:

theTime=getClockTime();
$(".dateField").val(theTime);
于 2013-07-02T15:21:54.500 回答
1

如果您使用的是 jQuery(我建议您为这样的任务执行此操作,尤其是因为您将问题标记为“jquery”),您可以使用以下内容:

function getClockTime()
{
    var now    = new Date();
    var hour   = now.getHours();
    var minute = now.getMinutes();
    var second = now.getSeconds();
    if (hour   < 10) { hour   = "0" + hour;   }
    if (minute < 10) { minute = "0" + minute; }
    if (second < 10) { second = "0" + second; }
    var timeString= hour +
                    ':' +
                    minute +
                    ':' +
                    second
    return timeString;
}

$(document).ready(function() {
    var time = getClockTime();
    $("input.needsTime").val(time);
});

然后,对于input需要插入时间的每个,只需使用:

<input type="text" name="whatever" class="needsTime" />

请参阅此演示

您的原始getClockTime函数用于获取当前时间。然后,当文档完成加载时,此函数被设置为变量time,因此不必多次调用它(节省了一堆计算和性能)。最后,jQuery 循环遍历input类中的所有元素needsTime并相应地设置它们的值。

于 2013-07-02T15:17:13.930 回答
0

我发现这很有效 - 相当好:

<!-- Posts current time (HH:MM:SS) into a field with same id + "Time" as the button.
Each button must have an id value and onclick="inserttime(this.id)" -->
<script type="text/javascript">
function inserttime(butID) {
var timeFLD = (butID+"Time")
var currentTime = new Date()
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()
var seconds = currentTime.getSeconds()
  if (minutes < 10) {minutes = "0" + minutes}
  if (seconds < 10) {seconds = "0" + seconds}
  pTime= hours + ":" + minutes + ":" + seconds + " "
document.getElementById(timeFLD).value = pTime
}
</script>
于 2013-07-07T06:45:48.377 回答