4

私のコード:

 var availableDates = ["23-1-2013","24-1-2013","25-1-2013"];

        function available(date) {
          dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear();
          if ($.inArray(dmy, availableDates) !== -1) {
            return [true, "","Available"];
          } else {
            return [false,"","unAvailable"];
          }
        }


        $("a.pickadate").click(function () {
            $("#datepicker").datepicker({
                    beforeShowDay: available,
                    altField: '#datepicked',
                    dateFormat: "dd-mm-yy"
                });
        });
        $("#datepicker a.ui-state-default").click(function () {
            $("#datepicker").datepicker("hide");
        });

それは問題なく開き、フィールドに問題なく入力され、正しい日付の罰金も表示されます。何かを選択すると、開いたままになります。

そして、私のHTMLは次のとおりです。

<input type="text" id="datepicked" name="datepicked" size="8" style="float: left;">
    <a href="javascript:void();" class="pickadate">
        <img src="media/images/icon-calendar.gif" style="float: left; margin-right: 10px;">
    </a>    
    <!-- Datepicker -->
    <div id="datepicker" style="position: absolute; left: 670px; border: 0px; z-index: 5000; top: 247px;"></div>

なんで閉まらないの?styleタグのCSSの関係でしょうか?それ以外の場合は、どこに配置すればよいかわかりません。それを出すと閉まらないし、ポジショニングがひどい。

4

3 に答える 3

1

このスクリプトを使用します

 $(document).click(function (e) {
        var ele = $(e.target);
        if (!ele.hasClass("hasDatepicker") && !ele.hasClass("ui-datepicker") && !ele.hasClass("ui-icon") && !$(ele).parent().parents(".ui-datepicker").length)
            $(".hasDatepicker").datepicker("hide");
    });
于 2014-10-07T13:22:50.653 に答える
1

.datepickerjQuery UI は、何らかのタイプの入力ではないものを配置すると、それを嫌うようです。代わりに呼び出し.datekpicker()#datepicked、UI を個別にスタイルします。

http://jsfiddle.net/wvxmF/1/

于 2013-01-24T00:14:26.060 に答える