1

私は比較的 JS の初心者ですが、ちょっと困っています。フォーム送信システムの場合、フォーム フィールドに一意の ID を入力する必要があります (一意であることが比較的確実である限り、何でもかまいません)。 )。

getTime() を使用することを考えました。これは、私の要件に対して十分に長く、一意の数値を生成するためです。しかし、SOに関するいくつかのトピックが同様の質問をしているにもかかわらず、通常の(非表示の)テキストフィールドにこの値を入力するために必要なコードに頭を悩ませているようには見えません。

フォームとすべての HTML は既に配置されており、必要なのは js スクリプトだけです。誰でも私を助けることができますか?

4

1 に答える 1

1
var timestamp = new Date().getUTCMilliseconds();


var now = new Date(); 
timestamp =now.getFullYear().toString(); 
// 2011
timestamp += (now.getFullMonth < 9 ? '0' : '') + now.getFullMonth().toString();
 // JS months are 0-based, so +1 and pad with 0's
 timestamp += (now.getDate < 10) ? '0' : '') + now.getDate().toString(); 

次に、そのタイムスタンプを入力に追加します

<input name="timestamp" id="input" type="hidden"/>

それから:

document.querySelector('#input').value = timestamp;

編集:最終コード

<script>
     document.onreadystatechange = function()
     {
          if(document.readyState == "interactive")
          {
                     var now = new Date(); 
timestamp =now.getFullYear().toString(); 
// 2011
timestamp += (now.getFullMonth < 9 ? '0' : '') + now.getFullMonth().toString();
 // JS months are 0-based, so +1 and pad with 0's
 timestamp += (now.getDate < 10) ? '0' : '') + now.getDate().toString(); 

               document.querySelector('#input').value = timestamp;
          }
     }
</script>

このスクリプト タグをドキュメントの一番下に配置します。

于 2016-06-03T17:44:12.157 に答える