2008-12-11 112 views
2

出於某種原因,我不能使用runat="server"作爲輸入標籤的屬性,以便jQuery顯示圖像按鈕和工作。沒有runat="server"有什麼不對嗎?它工作正常。我希望格式爲「yyyy/mm/dd」,並且我需要它作爲服務器,因爲這是我查看手動輸入的日期是否爲有效日期並且與接受的格式相匹配的地方。我真的想用一個asp:button但因爲我不能用runat="server"屬性我不知道,因爲這是必需的ASP控制jquery datepicker

<script language="javascript" type="text/javascript"> 

    $(document).ready(function(){ 
    $("#datepicker").datepicker({ showOn: "both", 
            buttonImage: "/Content/img/calendar.gif", 
            buttonImageOnly: true }); 
    }); 

</script> 

回答

8

從「#datepicker」到「form1_ctl01_ctl05_datepicker改變你的身份證做什麼「或者當您使用的東西RUNAT =‘服務器’

編輯: 解決的辦法,你可以根據CSS類而不是ID

<input id='datepicker' runat='server' class='datepicker' /> 

$(document).ready(function(){ 
$(".datepicker").datepicker({ showOn: "both", 
           buttonImage: "/Content/img/calendar.gif", 
           buttonImageOnly: true }); 
}); 
+0

因此,當我把runat服務器它改變id到ct101_ct105_datepicker?..我不明白你的意思第二部分 – TStamper 2008-12-11 20:56:24

2

對於RUNAT =控制它撿起來」服務器」, aspnet生成它自己的,對於呈現的html控件來說相當醜陋的ID。

如果你的腳本是實際的頁面上,你可以用$( 「#<%= datepicker.ClientID%>」)取代
$( 「#日期選擇器」),
將輸出錯位的ID ASPNET生成,或者,正如Jimmy所建議的,改爲使用css類來定位它。

0

爲後人:

當使用runat='server'標籤,添加clientidmode='static'到您的元素標記,以防止生成的ID的截斷。對於複雜或嵌套的表單,這可能會混淆控件id的唯一性,這就是爲什麼它們默認以元素的父元素的id爲前綴。

p.s. css類可能是處理datepickers的最佳方式(恕我直言),所以接受的答案看起來很好。