2009-06-16 26 views
7

Sử dụng javascript, cách chúng tôi có thể tự động chèn DATE và TIME hiện tại vào trường nhập biểu mẫu.Ngày và giờ tự động chèn vào trường nhập biểu mẫu?

Tôi đang tạo biểu mẫu "Sự cố" để theo dõi các khiếu nại do người dùng gửi về một dịch vụ nhất định. Tôi đang thu thập càng nhiều thông tin càng tốt. Tôi muốn cứu nhân viên ở đây không phải nhập ngày và giờ theo cách thủ công mỗi khi họ mở biểu mẫu.

Tôi có đoạn mã này:

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

nhưng nó không làm việc.

cảm ơn rất nhiều vì đã giúp đỡ.

+1

Không thuộc tính của bất kỳ yếu tố * * HTML bao giờ sẽ thực hiện một tuyên bố JS: HTML không phải là một ngôn ngữ kịch bản. onclick và cộng sự chỉ cung cấp các giá trị cho một biểu diễn DOM. – annakata

+0

sử dụng mã phía máy chủ (PHP, ASP.NET) để bảo mật hơn trong vấn đề này. tin tặc (người mới bắt đầu) có thể thay đổi giá trị 'đầu vào' của bạn bằng FireBug, Công cụ dành cho nhà phát triển (IE8 +), .... – MajidTaheri

Trả lời

17

Javascript sẽ không thực thi trong thuộc tính giá trị. Bạn có thể làm một cái gì đó như thế này, mặc dù:

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

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

Bạn có thể muốn định dạng ngày như bạn thích, vì đầu ra mặc định của Date() trông giống như sau: Tue Jun 16 2009 10:47:10 GMT-0400 (Eastern Daylight Time). Xem this SO question để biết thông tin về định dạng ngày.

+2

Chỉ hoạt động nếu đầu vào không phải là trường nhập ngày HTML5. –

2

Cách nhanh nhất để có được định dạng ngày tốt nhất là sử dụng datejs.

Thư viện thực sự dễ sử dụng và cung cấp cho bạn định dạng rất đẹp.


theo như đoạn mã của bạn, không sử dụng document.write nếu bạn có thể trợ giúp. thử

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

Xem ví dụ này, http://jsbin.com/ahehe

Sử dụng ngày Javascript định dạng tiện ích mô tả here.

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

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

Xin lỗi là một "Johnny đến gần đây" nhưng tôi đã thử kịch bản này trên bảy cách từ Chủ Nhật và không thể đưa nó vào trường. Tôi xây dựng một tập tin mới tất cả những gì có trong nó là mã ở trên với thẻ html thích hợp và nó không tạo ra một hộp văn bản với một ngày trong đó. Bất kỳ đề xuất? – user1794918

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

Có vẻ như bạn sẽ lưu trữ giá trị mà trường nhập chứa sau khi biểu mẫu được gửi, có nghĩa là bạn đang sử dụng ngôn ngữ kịch bản. Tôi sẽ sử dụng nó thay vì JavaScript vì hầu hết các ngôn ngữ kịch bản có các tùy chọn định dạng thời gian/ngày tốt hơn.Trong PHP bạn có thể làm một cái gì đó như thế này:

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

nào sẽ lấp đầy lĩnh vực này với "ngày 16 tháng 6 năm 2009 - 08:58"

+0

Điều này phụ thuộc vào múi giờ của máy chủ, không thực sự là giờ địa phương của người dùng –

0

lựa chọn khác là:

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

Nếu bạn là sử dụng ngày HTML5

sử dụng mã này

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

Thêm mã ở trên vào cuối của kịch bản. Điều này là bắt buộc vì plugin datepicker không có điều khoản để đặt ngày trong điều khiển trong khi khởi tạo.

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

tìm thấy ở đây: 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(); 
Các vấn đề liên quan