2010-11-19 42 views
1

如何在JavaScript中將文本框值設置爲DateTime.Now的等效值?我想這些如何在Javascript中設置ASP.NET服務器時間

$('#LastUpdatedTime').val('<%= System.DateTime.Now %>'); 
$('#LastUpdatedTime').val('<%= System.DateTime.Now.ToString() %>'); 

兩個值設置爲文字串<%= System.DateTime的...而不是時間。

+2

這是在你的代碼前端(.aspx/.ascx)還是在外部的.js文件中? – 2010-11-19 21:52:53

+0

它在外部的js文件... – Prabhu 2010-11-19 21:55:21

+0

感謝您的所有解決方案... – Prabhu 2010-11-19 22:15:34

回答

1

該代碼很好。問題是您的<%= System.DateTime.Now %>代碼沒有被解析爲服務器端代碼。頁面的其餘部分是什麼樣的?

編輯: 因爲它是在一個外部JS文件,你總是可以重命名「的.js」文件「的.aspx」,使ASP.Net將開始處理它。然後,您只需更改<script>標籤即可使用「.aspx」名稱。

另一種選擇是將服務器配置爲通過ASP.Net處理程序發送「.js」文件。

+1

多數民衆贊成在一定程度上明顯。他如何修復它? – 2010-11-19 21:53:36

1

你在aspx頁面上有<script>標籤嗎?

ASPX頁面應該是這個樣子

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
</head> 
<body> 
    <form id="form1" runat="server"> 

<script type="text/javascript"> 
    //put your JAVASCRIPT here 
    $('#LastUpdatedTime').val('<%= System.DateTime.Now %>'); 
    $('#LastUpdatedTime').val('<%= System.DateTime.Now.ToString() %>'); 
</script> 
    </form> 
</body> 
</html> 
+0

我有一個單獨的js文件...其他js的東西在那個文件中工作正常 – Prabhu 2010-11-19 21:54:34

+0

它必須在aspx文件中,否則它將不會被服務器解析。沒有辦法繞過它。 – Laramie 2010-11-19 21:55:46

+0

這就是你的問題。像這樣的服務器端代碼將無法在外部.js文件中工作。您需要將該JavaScript放在頁面上,就像Laramie的示例所示。 – 2010-11-19 21:55:59

2

添加一個JavaScript函數,其中僅返回服務器標籤的ASPX,然後調用您的.js文件這一功能。即在ASPX中添加:

function GetTimeNow() { return '<%= System.DateTime.Now.ToString() %>';} 
+0

我試過這個,但它總是返回最初加載的時間......每次調用該函數時似乎都沒有運行DateTime.Now。不知道我做得不對...... – Prabhu 2010-11-19 22:31:18

2

您不能將服務器標記放在JavaScript文件中。

您必須將代碼放入由ASP.NET引擎處理的文件中,例如,您的.aspx文件。 (可以配置服務器,以便ASP.NET引擎也可以處理.js文件,但這不是一個好的解決方案.JavaScript文件比普通頁面緩存更多,所以不能確定服務器是否執行了.js文件。該文件每次使用的代碼。)

1

如何在標題中主要的.aspx頁面上寫出來的時候

<script type="text/javascript"> 
var now = <%= System.DateTime.Now %>; 
</script> 

,然後做

$('#LastUpdatedTime').val(now); 

您只需確保您適當地命名事物,以便外部文件中的JS從全局範圍獲取值。

相關問題