1

runat="server" が jquery を壊しています。2 つの入力がありますが、テスト目的で runat="server" をそのうちの 1 つだけに追加しました。実際には、両方を追加する必要があります。

以下に、datetimepicker をトリガーする JS スクリプトがあります。

<script>
        $(function(){
            $("#dateFrom").datetimepicker();
            $("#<%=dateTo%>").datetimepicker();
        });
</script>

ここでは、runat="server" を使用するか、asp.net コードではなく、HTML 入力を見つけることができます。

    <tr>
        <td>
             <input type="text" id="dateFrom" name="dateFrom" value="" class="dateFrom" />
        </td>
        <td >
             <input type="text" id="dateTo" name="dateTo" runat="server" value="" class="dateTo" /> 
        </td>
    </tr>

誰にもアイデア、ヒントはありますか.....?ありがとうございました

4

5 に答える 5

7

サーバー側コントロールClientIDの生成を取得するために使用します。Id

$("#<%=dateTo.ClientID%>").datetimepicker();

ASP.NET は、サーバー側コントロールの属性idとは異なるid特定の属性を生成するため、jQuery からアクセスするには、生成された値を使用する必要があります。

于 2013-01-10T16:37:15.447 に答える
3

クラス名を指定しているので、それらを使用することをお勧めします。

$(function(){
    $(".dateTo, .dateFrom").datetimepicker();
});

または、フォームの「日付」フィールドに「日付」のクラスを指定して、次のように使用することもできます。

$(function(){
    $(".date").datetimepicker();
});

これはクライアント側の検証の一般的なパターンであり、CSSを使用したスタイル設定を通じてコン​​テキストの手がかりを提供することもできます。

于 2013-01-10T16:55:03.183 に答える
1

.NET 4 を使用している場合は、ClientIDMode属性を に設定できますStatic。これにより、フレームワークが要素の ID を変更できなくなります。

<input type="text" id="dateTo" name="dateTo" runat="server" 
       ClientIDMode="Static" class="dateTo" value=""  /> 
于 2013-01-10T16:59:49.270 に答える
0

これを使用して、サーバー コントロールの正しいクライアント ID を取得します

$('[id$=dateTo]').datetimepicker();
于 2013-01-10T16:39:20.873 に答える
0

が追加されると、ASP.NET は入力をサーバー側コントロールとして扱いますrunat=server。これにより、これらの入力の変換された識別子が生成され、コンテナー プレフィックス (のようなもの) で始まるためctl00_、jQuery セレクターが「壊れます」。

.NET 4 を使用している場合は、 ClientIDModeを変更してこれらの変換を無効にすることができます。それ以外の場合は、セレクターにプレフィックスを含めるか、セレクターをリファクタリングして、ID に依存せず、他の手段による選択のために多少区別する必要があります。

于 2013-01-10T16:37:04.953 に答える