单击没有输入字段的图像打开JQuery Datepicker

ep4*_*169 70 jquery datepicker

我想在用户点击图片时打开JQuery Datepicker.没有输入字段,之后显示所选日期; 我只想通过Ajax将输入的日期保存到服务器.

目前我有这个代码:

<img src='someimage.gif' id="datepicker" />

$(document).ready(function() {
    $("#datepicker").datepicker({
            changeMonth: true,
            changeYear: true,
        }).click(function() { $(this).datepicker('show'); });
 });
Run Code Online (Sandbox Code Playgroud)

但是当我点击图像时没有任何反应.我还尝试将datepicker()调用的结果保存到全局var,然后从图像的onclick()事件中调用datepicker('show'),但结果相同.

ep4*_*169 118

原来一个简单的隐藏输入字段完成工作:

<input type="hidden" id="dp" />
Run Code Online (Sandbox Code Playgroud)

然后像往常一样使用图像的buttonImage属性:

    $("#dp").datepicker({
        buttonImage: '../images/icon_star.gif',
        buttonImageOnly: true,
        changeMonth: true,
        changeYear: true,
        showOn: 'both',
     });
Run Code Online (Sandbox Code Playgroud)

最初我尝试了一个文本输入字段,然后display:none在其上设置了一个样式,但这导致日历从浏览器的顶部出现,而不是从用户单击的位置出现.但隐藏的字段按预期工作.

  • 如果有人需要它,这里有一个jsfiddle :-) -------- >>>>>> http://jsfiddle.net/pratik24/M9Hj6/ (2认同)

Jos*_*lio 23

jQuery文档说,当datePicker与输入框没有关联时,它需要连接到SPAN或DIV.你可以这样做:

<img src='someimage.gif' id="datepickerImage" />
<div id="datepicker"></div>

<script type="text/javascript">
 $(document).ready(function() {
    $("#datepicker").datepicker({
            changeMonth: true,
            changeYear: true,
    })
    .hide()
    .click(function() {
      $(this).hide();
    });

    $("#datepickerImage").click(function() {
       $("#datepicker").show(); 
    });
 });
</script>
Run Code Online (Sandbox Code Playgroud)

  • 这很有效,但奇怪的是我每个月都失去了一些功能.例如,我没有得到滚动打开动画效果.更重要的是,当我在外面点击时,日历不会消失. (2认同)

Pab*_*ius 23

如果您使用输入字段和图标(如此示例):

<input name="hasta" id="Hasta"  type="text" readonly  />
<a href="#" id="Hasta_icono" ></a>
Run Code Online (Sandbox Code Playgroud)

您可以将日期选择器附加到您的图标(在我的情况下,通过CSS在A标签内),如下所示:

$("#Hasta").datepicker();
  $("#Hasta_icono").click(function() { 
   $("#Hasta").datepicker( "show" );
  });
Run Code Online (Sandbox Code Playgroud)


小智 8

要在鼠标悬停在日历图标上时更改"...",您需要在datepicker选项中添加以下内容:

    showOn: 'button',
    buttonText: 'Click to show the calendar',
    buttonImageOnly: true, 
    buttonImage: 'images/cal2.png',
Run Code Online (Sandbox Code Playgroud)