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 に答える
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 に答える