1

機能して検索するカレンダー プログラムがあります。デフォルトでは、jQuery はユーザーが選択した日付を入力ボックスにプッシュします。

<input type="hidden" id="datepickerFrom" />

私の知る限り、検索時にこの値を取得することはできません (可能であれば、次の問題は解決します)。

次に、jQuery、CSS、およびテキスト/ラベルボックスをメインプログラムに移動しましたが、カレンダー機能をクリックすると、カレンダーが表示され、上記のように入力ボックスに入力されます。(確認のため表示させました)

私のスタンドアローンバージョンでは、日付は

 <asp:TextBox ID="lblDateStart" runat="server" width="120px" />

jQueryはフォルダー内のjsファイルに基づいており、明らかに参照されているか、何も機能しません。

両方を満たすコードを以下に示します。私は行き来するいくつかのコースでプレーしています。

CSS/jQuery 参照をマスター ファイルと .aspx ファイルに配置して、違いがあることを確認し、jQuery をページ自体に配置しようとしました (面倒ですが、良いテストです)。

したがって、CSS と参照は、私が解決できることから機能します。エラーはページにフィードバックしていますが、テキストボックスのみです。

カレンダーの日付のクリックでトリガーされるコード...

//Varibles passed out here from the functions as we can not check inputs
var lblDateStart = '<%= lblDateStart.ClientId %>';
function setLabelStart(yourDate1) {
    $("#lblDateStart").val(yourDate1);
}

var lblDateEnd = '<%= lblDateEnd.ClientId %>';
function setLabelEnd(yourDate2) {
    $("#lblDateEnd").val(yourDate2);
}

$(document).ready(function () {
    $("#datepickerFrom").datepicker({
        //display month drop down
        changeMonth: true,
        //display year drop down
        changeYear: true,
        //date format
        dateFormat: "dd/mm/yy",
        //calender image
        showOn: "button",
        buttonImage: "../images/calendar.gif",
        buttonImageOnly: true,
        //multiple months
        numberOfMonths: 3,
        //show 'done' button
        //showButtonPanel: true,
        // Default Date
        defaultDate: "-4w",
        //pass value to variable
        onSelect: setLabelStart
    });
});

//More than one date? You need to scripts

$(document).ready(function () {
    $("#datepickerTo").datepicker({
        //display month drop down
        changeMonth: true,
        //display year drop down
        changeYear: true,
        //date format
        dateFormat: "dd/mm/yy",
        //calender image
        showOn: "button",
        buttonImage: "../images/calendar.gif",
        buttonImageOnly: true,
        //multiple months
        numberOfMonths: 3,
        //show 'done' button
        //showButtonPanel: true,
        // Default Date
        defaultDate: "+0w",
        //pass value to variable
        onSelect: setLabelEnd
    });
});

そのため、もう少し詳しい情報が必要な場合はお知らせください。:-)

以下のClientID行に関係しているのではないかと思いますが、それはニシンかもしれませんか?

var lblDateEnd = '<%= lblDateEnd.ClientId %>';

4

2 に答える 2

0

まず、エドワードに心から感謝します。私が抱えていた問題は、jQuery の値をテキストボックスに取り込もうとすることでした。

私が見つけたのは、マスター ページがないときに .aspx ページで機能することでした。ただし、マスター ページを追加すると、コンテンツ プレースホルダーが追加されます。

私の考えでは、contentplaceholder はサブフォルダーのように機能し、感じます。あえて言うなら、iframe です (ただし、地獄のような意味合いはありません)。

したがって、ページ上にラベル、テキストボックスなどがある場合はどこでも解決策がありますが、コンテンツプレースホルダーにあり、値が渡されません:

1) IE でページを開きます 2) ソースを表示します 3) IE がラベルに付けた ID をコピーします (変更されます) 4) これをターゲットにします

つまり、私は最初に(誤って)ターゲットにしました

   $("#lblDateEnd").val(yourDate2);

しかし、実際には最初に「ct100_」を追加する必要があり、これは常に先頭に表示されます

次に、プレースホルダー名を追加します。私の場合は「ContentPlaceHolder_」です

アンダースコアに注意してください。フォルダーのスラッシュのようなものです。

そして最後にそれは動作します...

$("#ctl00_ContentPlaceHolder1_lblDateEnd").val(yourDate2);
于 2013-08-29T08:28:45.087 に答える