2009-06-16 8 views
7

Utilizzando javascript, come possiamo inserire automaticamente la DATA e l'ORA attuali in un campo di immissione modulo.Inserimento automatico data e ora nel campo di inserimento modulo?

Sto costruendo un modulo "Problemi" per tenere traccia dei reclami inviati dall'utente su un determinato servizio. Sto raccogliendo più informazioni possibili. Voglio salvare lo staff qui da dover inserire manualmente la data e l'ora ogni volta che aprono il modulo.

Ho questo frammento di codice:

<input id="date" name="date" value="javascript:document.write(Date()+'.')"/> 

ma non funziona.

molte grazie per qualsiasi aiuto.

+1

Nessun attributo * * ogni elemento HTML potrà mai eseguire un'istruzione JS: Il codice HTML non è un linguaggio di scripting. onclick et al forniscono solo valori a una rappresentazione DOM. – annakata

+0

utilizza il codice lato server (PHP, ASP.NET) per maggiore sicurezza in questo problema. gli hacker (principianti) potrebbero cambiare i valori di 'input' di FireBug, Developer Tools (IE8 +), .... – MajidTaheri

risposta

17

Javascript non verrà eseguito all'interno di un attributo valore. Si potrebbe fare qualcosa di simile, però:

<input id="date" name="date"> 

<script type="text/javascript"> 
    document.getElementById('date').value = Date(); 
</script> 

che vorreste probabilmente per formattare la data come si preferisce, perché l'output predefinito di Date() sembra qualcosa di simile: Tue Jun 16 2009 10:47:10 GMT-0400 (Eastern Daylight Time). Vedere this SO question per informazioni sulla formattazione di una data.

+2

Funziona solo se l'input non è un campo di immissione della data HTML5. –

2

Il modo più veloce per ottenere la formattazione della data che è buono è usare datejs.

La libreria è davvero facile da usare e offre una formattazione molto carina.


per quanto riguarda lo snippet di codice, non utilizzare document.write se si può aiutare. provare

document.getElementById("date").value = new Date().toUTCString(); 
4

Vedere l'esempio, http://jsbin.com/ahehe

Utilizza la data JavaScript utilità di formattazione descritte here.

<input id="date" name="date" /> 

<script> 
    document.getElementById('date').value = (new Date()).format("m/dd/yy"); 
</script> 
+0

Mi spiace essere un "Johnny come ultimamente" ma ho provato questo script sopra sette modi dalla domenica e non riesco a farlo popolare il campo. Ho creato un nuovo file tutto ciò che è in esso è il codice sopra con tagging html appropriato e non produce una casella di testo con una data in esso. Eventuali suggerimenti? – user1794918

0
<input id="date" name="date" /> 
<script type="text/javascript"> 
document.getElementById("date").value = new Date(); 
</script> 
0

Sembra che stiate memorizzando il valore che il campo di input contiene dopo che il modulo è stato inviato, il che significa che state usando un linguaggio di scripting. Lo userei al posto di JavaScript poiché la maggior parte dei linguaggi di scripting ha opzioni di formattazione dell'ora e della data migliori.In PHP si potrebbe fare qualcosa di simile:

<input id="date" name="date" value="<?php echo date("M j, Y - g:i"); ?>"/> 

che avrebbe riempito il campo con "16 giugno 2009 - 08:58"

+0

Questo dipenderebbe dal fuso orario del server, non proprio dall'ora locale dell'utente –

0

Un'altra opzione è:

<script language="JavaScript" type="text/javascript"> 
document.getElementById("my_date:box").value = (Stamp.getDate()+"/"+(Stamp.getMonth() + 1)+"/"+(Stamp.getYear())); 
</script> 
1

Se sei con data HTML5

uso di questo codice

HTML

<input type="date" name="bday" id="start_date"/> 

Java Script

document.getElementById('start_date').value = Date(); 
1
$("#startDate").val($.datepicker.formatDate("dd/mm/yy", new Date())); 
$("#endDate").val($.datepicker.formatDate("dd/mm/yy", new Date())); 

Aggiungere il codice di cui sopra, alla fine dello script. Questo è necessario perché il plug-in Datepicker non ha la possibilità di impostare la data nel controllo durante l'inizializzazione.

6
<input type="date" id="myDate" /> 

<script type="text/javascript"> 
function SetDate() 
{ 
var date = new Date(); 

var day = date.getDate(); 
var month = date.getMonth() + 1; 
var year = date.getFullYear(); 

if (month < 10) month = "0" + month; 
if (day < 10) day = "0" + day; 

var today = year + "-" + month + "-" + day; 


document.getElementById('myDate').value = today; 
} 
</script> 

<body onload="SetDate();"> 

trovato qui: http://jsbin.com/oqekar/1/edit?html,js,output

0
var date = new Date(); 

document.getElementById("date").value = date.getFullYear() + "-" + (date.getMonth()<10?'0':'') + (date.getMonth() + 1) + "-" + (date.getDate()<10?'0':'') + date.getDate(); 

document.getElementById("hour").value = (date.getHours()<10?'0':'') + date.getHours() + ":" + (date.getMinutes()<10?'0':'') + date.getMinutes();