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>

为什么不关门?它与样式标签中的CSS有关吗?我不知道我应该把它放在哪里。如果我把它拿出来,它不会关闭,而且定位很糟糕。

4

3 回答 3

1

jQuery UI 似乎讨厌它,当您放置.datepicker不是某种类型的输入的东西时。改为调用.datekpicker()#datepicked并单独设置 UI 样式。

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

于 2013-01-24T00:14:26.060 回答
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 回答
0

我知道这是一个旧线程,但也许有人会发现这很有用:

我在网站上有许多不同的占位符,具有不同的颜色,因此使用确切的颜色可能会覆盖样式。

这是有效的解决方案:

::-webkit-input-placeholder { color:inherit; opacity: 1 !important;}
于 2014-10-15T05:56:15.570 回答