2014-06-21 13 views
0

我想使用jquery-ui-1.10.4中提供的jquery datepicker。但問題是它沒有服務器端的html輸入標籤工作正常。爲什麼jquery datePicker不工作在asp.net textbox

只要我用了服務器端的jQuery函數不執行

編碼爲

<script type="text/javascript"> 
    $(function() { 
     $("#datepicker").datepicker({ 
      changeMonth: true, 
      changeYear: true 
     }); 
    }); 

和工作部分是

<input type="text" id="datepicker"/>//Without runat attribute 

但當RUNAT屬性添加它停止工作

<input type="text" id="datepicker" runat="server"/>//Without runat attribute 

有人幫助!!!

+0

是否在母版頁中? –

+0

您發送給datepicker的日期格式是什麼? – marathonman

+0

@RashminJaviya它在主頁面 –

回答

0

這可能是由於母版頁。當您使用母版頁時,會在子頁面中爲每個控件添加前綴「CPH」。嘗試使用類訪問。

的Javascript

<input type="text" id="datepicker" runat="server" class="datepicker"/> 

HTML

$(function() { 
    $(".datepicker").datepicker({ 
     changeMonth: true, 
     changeYear: true 
    }); 
}); 

如果你不想用那麼類第二種方式是

+0

問題是,runat =「服務器」產生和id,所以我解決它使用ClientIdMode =「靜態」屬性 –

+0

不,使用「CPH_DatePicker」作爲您的jQuery選擇器是一個壞主意。它不是強類型的,它基於如何生成ID(可能會改變)的假設。相反,將ClientIdMode設置爲靜態或使用內聯表達式來檢索ID是首選解決方案。 – mason

0

服務器端控件自動使用$("#CPH_datepicker")作爲選擇根據bei的嵌套層次結構生成一個ID在母版頁內。

所以這是一個選項:

<input type="text" id="datepicker" runat="server" ClientIdMode="Static" /> 

或者這樣:

$(function() { 
    $("#<%= datepicker.ClientId %>").datepicker({ 
     changeMonth: true, 
     changeYear: true 
    }); 
}); 

第二個選項是最好的,因爲它是強類型。雖然使用第一種解決方案,但您也可以在頁面,web.config或machine.config級別更改ClientIdMode。