仅打开带有图标的datetimepicker

时间:2015-07-16 17:14:25

标签: javascript jquery html css datetimepicker

我目前在项目中使用Trent Richardson's datetimepicker。它与文本框相关联,因此当您在文本框中单击时,弹出选择器,您可以选择时间或手动输入内容。

我的问题:如何添加图标"内部"文本框,或仅在文本框的边缘,以便您可以单击文本框而无需打开日期/时间选择器,或打开带有图标的日期/时间选择器,然后填充您选择的文本框?因此,您可以选择在没有选择器的情况下手动输入时间或只使用选择器。

引导日期/时间选择器具有此功能,但我需要使用jQuery而不是此项目的引导程序。

我找到了类似的this question,但是从启动了选择器图标和文本框。

2 个答案:

答案 0 :(得分:1)

我已经更新了唯一的图标datepicker show;

http://jsfiddle.net/uDVwx/33/

Jquery代码

$(document).ready(function() {

    $(function() {

        $("#from-datetime").datetimepicker({
            showOn: 'both',
            buttonImage: 'http://testsite.shadownetwest.com/datepicker4/development-bundle/demos/images/calendar.gif',
            buttonImageOnly: true,
            changeMonth: true,
            changeYear: true
        }) .click(function() {
      $("#ui-datepicker-div").hide();
    });

        $(".ui-datepicker-trigger ").click(function(){$("#ui-datepicker-div").show()});

    });

});

HTML代码

<fieldset id="fieldset">
    <dl>
        <dt><label for="from-datetime">From: </label></dt>
        <dd><input type="text" value="" id="from-datetime" name="from-datetime"/></dd>
    </dl>

</fieldset>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/jquery-ui.js"></script>

<script type="text/javascript" src="http://trentrichardson.com/examples/timepicker/jquery-ui-timepicker-addon.js"></script>

答案 1 :(得分:0)

您应该能够将按钮上的onclick事件绑定到datepicker实体的创建。例如,

$(document).ready(function() {
    $("#myButton").click = initiate;
});

function initiate() {
    $("#datepickerarea").datepicker();
}

使用id="myButton"按钮(或任何你喜欢的按钮),当点击它时,它会产生一个新的日期选择器。如果您希望按钮成为切换按钮,则必须跟踪日期选择器状态,如果已经存在则将其删除。

function initiatie() {
    if($("#filter_date").datepicker( "widget" ).is(":visible")) {
        $("#datepickerarea").datepicker("destroy");
    } else {
        $("#datepickerarea").datepicker();
    }
}

编辑:在您将其初始化之前,日期选择器不会初始化。此代码将阻止datepicker启动,因为我们绑定一个事件(特别是onclick事件)以开始创建datepicker。如果没有人点击该按钮,则datepicker将无法启动

EDIT2:道歉,我对datepicker如何运作的记忆有点傻。您应该将datepicker初始化为INLINE元素,方法是在div上创建而不是在输入框中创建。即。

<div id="datepickerarea"></div>
<input type="text" id="myinputbox" />

和JS

$("#datepickerarea").datepicker({ altField: "myinputbox"});

这会将datepicker作为一个更永久的元素,并将用户选择的任何内容放入输入字段。