2009-06-16 16 views
7

Używając javascript, w jaki sposób możemy automatycznie wstawić bieżącą DATĘ i CZAS do pola wprowadzania formularza.Automatyczne wstawianie daty i godziny w polu wprowadzania formularza?

Tworzę formularz "Problemy", aby śledzić przesyłane przez użytkowników skargi dotyczące określonej usługi. Zbieram jak najwięcej informacji. Chcę zapisać pracowników tutaj, od konieczności ręcznego wprowadzania daty i czasu za każdym razem, gdy otwierają formularz.

Mam ten fragment kodu:

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

ale to nie działa.

wielkie dzięki za pomoc.

+1

Nie atrybutem * * jakiegokolwiek elementu HTML nigdy wykonać instrukcję JS: HTML nie jest językiem skryptowym. onclick et al wystarczy podać wartości reprezentacji DOM. – annakata

+0

używać kodu po stronie serwera (PHP, ASP.NET) dla bardziej bezpiecznego w tym wydaniu. hakerzy (początkujący) mogą zmienić wartości 'input' przez FireBug, Developer Tools (IE8 +), .... – MajidTaheri

Odpowiedz

17

Javascript nie zostanie wykonany w ramach atrybutu wartości. Można zrobić coś takiego, choć:

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

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

Wy zapewne chcesz sformatować datę, jak wolisz, ponieważ domyślne wyjście Date() wygląda mniej więcej tak: Tue Jun 16 2009 10:47:10 GMT-0400 (Eastern Daylight Time). Zobacz this SO question, aby uzyskać informacje na temat formatowania daty.

+2

Działa tylko wtedy, gdy dane wejściowe nie są datą wprowadzania danych w formacie HTML5. –

2

Najszybszym sposobem uzyskania dowolnego formatu daty jest użycie datejs.

Lib jest naprawdę łatwy w obsłudze i zapewnia bardzo ładne formatowanie.


jeśli chodzi o fragment kodu, nie używaj document.write, jeśli możesz w tym pomóc. spróbuj

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

Patrz przykład, http://jsbin.com/ahehe

Użyj data JavaScript formatowania narzędzia opisane here.

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

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

Przykro mi, że jestem "Johnnym, który ostatnio przyszedł", ale wypróbowałem ten skrypt powyżej siedmiu sposobów od niedzieli i nie mogę go zapełnić. Zbudowałem nowy plik, wszystko, co jest w nim, to powyższy kod z odpowiednim tagowaniem html i nie tworzy pola tekstowego z datą. Jakieś sugestie? – user1794918

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

Wygląda na to, że przechowujesz wartość, którą zawiera pole wejściowe po przesłaniu formularza, co oznacza, że ​​używasz języka skryptowego. Używałbym go zamiast JavaScript, ponieważ większość języków skryptowych ma lepsze opcje formatowania czasu/daty.W PHP można zrobić coś takiego:

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

Które wypełnić pole z "cze 16, 2009 - 08:58"

+0

To zależy od strefy czasowej serwera, a nie czasu lokalnego użytkownika –

0

Inną opcją jest:

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

Jeżeli jesteś stosując datę HTML5

użyć tego kodu

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())); 

Dodaj powyższy kod na końcu skryptu. Jest to wymagane, ponieważ wtyczka datepicker nie ma możliwości ustawienia daty w formancie podczas inicjowania.

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();"> 

znaleźć tutaj: 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(); 
Powiązane problemy