jquery ui datepicker 年月日之间以横线隔开

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery ui datepicker 年月日之间以横线隔开相关的知识,希望对你有一定的参考价值。

参考技术A jsp页面日期弹出框:(easyUI)
写入class:class="easyui-datebox"
引入:<script type="text/javascript"
src="$/_js/jqezui/local/easyui-lang-zh_CN.js"></script>

Datebos.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>jQuery EasyUI</title>
<link rel="stylesheet" type="text/css" href="../themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="../themes/icon.css">
<script type="text/javascript" src="../jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="../jquery.easyui.min.js"></script>
<script>
function disable()
$('#dd').datebox('disable');

function enable()
$('#dd').datebox('enable');

</script>
</head>
<body>
<h1>DateBox</h1>
<div style="margin-bottom:10px;">
<a href="#" onclick="disable()">disable</a>
<a href="#" onclick="enable()">enable</a>
</div>
<input id="dd" class="easyui-datebox" required="true"></input>
</body>
</html>

你下载的文件中应该有一个demo文件夹,里面修改上面这个html成这样既可(注意将要操作的元素的class变为easyui-datebox)!
参考技术B $( "#datepicker" ).datepicker( "option", "dateFormat", "yy-mm-dd" );追问

我加上了,都不显示了,不给参数还显示呢

参考技术C $("#someid").datepicker(dateFormat:"yy-mm-dd") 参考技术D $( "#datepicker" ).datepicker( "option", "dateFormat", "yy-mm-dd" );本回答被提问者采纳

将 JQuery UI Datepicker 与来自 Jquery UI 主题的图标一起使用

【中文标题】将 JQuery UI Datepicker 与来自 Jquery UI 主题的图标一起使用【英文标题】:Use JQuery UI Datepicker with Icons from Jquery UI Theme 【发布时间】:2010-10-22 14:09:01 【问题描述】:

我有一个使用 JQuery UI 的 datepicker 控件设置,我也在使用 JQuery UI 主题,它提供了一堆我想要使用的默认图标。

DatePicker 允许指定特定图像,即:

<script type="text/javascript">
  $(document).ready(function() 
    $("#DateFrom").datepicker( showOn: 'button', buttonImageOnly: true, buttonImage: 'images/ui-icon-calendar.png' );
  );
</script>  

要显示图标集中的图标,您可以使用以下内容:

<span class="ui-icon ui-icon-calendar"></span>

是否可以轻松地将两者集成,还是我只需要手动修改样式/图像?

【问题讨论】:

我也想要这个;我提交了一张票dev.jqueryui.com/ticket/5081 我的票被标记为 Wont-Fix 并带有一条评论,表明将来可能会完全放弃对按钮的支持...我猜你是靠自己的:/ 您也可以尝试通过以下代码连接datepicker:***.com/questions/5082204/… 【参考方案1】:

我这样做了

$("#DateFrom").datepicker(
    showOn: 'button'
).next('button').button(
    icons: 
        primary: 'ui-icon-calendar'
    , text:false
);

只需修改它在日历输入旁边插入的按钮。默认情况下,它们会在文本中抛出三个省略号,因此我也将其删除。

【讨论】:

这个答案实际上使用了jQuery图标 如果你想让图标居中在按钮使用 .button( icons: primary: 'ui-icon-calendar' , text: false ) 此解决方案仍然有效。有点违反直觉:必须删除 datepicker 选项“buttonImageOnly: true”才能使这个技巧起作用。 有趣的是,这些年来这仍然有效/可行。我在 SO 上给出的第三个答案。 这很棒。对于新版本的 JQUI,它应该只是图标:“ui-icon-calendar”。在日期选择器上设置 buttonText: "" 也是个好主意,否则标题中会出现 "...",然后在大多数浏览器中显示为提示。【参考方案2】:

我建议将图像放入输入

input.date_picker 
  text-align: center;
  background-image: url("images/ui-icon-calendar.png");
  background-position: right center;
  background-repeat: no-repeat;
  padding-right: 18px;
  width: 78px;

喜欢

我使用了 this icon 来自不错的 tango icons 项目,也可在 png 中找到

优点:

独立于javascript 立即使用 DOM 加载 未来日期输入易于添加

【讨论】:

正如@Nipup 指出的那样,jQuery 就是这样做的jqueryui.com/demos/datepicker/#icon-trigger【参考方案3】:

恐怕您必须手动执行此操作。默认情况下,Datepicker 插件使用以下 HTML 插入指定的buttonImage

<img title="..."  src="images/ui-icon-calendar.png" class="ui-datepicker-trigger">

顺便说一句,您可能想使用...

$(function() 
 // your code here
);

...而不是...

$(document).ready(function() 
 // your code here
);

【讨论】:

为什么要使用 "$(function() " 而不是 "$(document).ready(function() "? 1) 因为它更短。 2)因为它更容易记住。 3) 因为它做的事情完全相同,因为它是$(document).ready(function() ... 的别名。 假设您不是在旧版本中工作,“$(function())” 并非在所有版本中都可用;) 见jqueryui.com/demos/datepicker/#icon-trigger @Nipun 建议。您无需手动操作。 @RickAndMSFT 请注意,此答案在撰写本文时是正确的(早在 2009 年)。从那以后情况发生了变化。【参考方案4】:

最好的办法是;

首先使用你已经使用过的javascript。

 <script type="text/javascript">
   $(document).ready(function() 
        $("#DateFrom").datepicker( showOn: 'button', buttonImageOnly: true, buttonImage: 'images/ui-icon-calendar.png' );
   );
 </script>

然后,添加以下css代码;

<style type="text/css">
.ui-datepicker-trigger

        padding:0px;
        padding-left:5px;
        vertical-align:baseline;

        position:relative;
        top:4px;
        height:18px;

</style>

此 css 将帮助您根据需要正确对齐日历图像。

【讨论】:

再次,这不是按要求使用 jquery 图标集【参考方案5】:

只是对 Evs 的回答稍作跟进...(帮助很大,谢谢 Evs !)。

它也适用于 IE8,我添加了 CSS 来更改悬停时的光标:

button.date-picker-button-hidden:hover

    cursor: pointer; 

【讨论】:

【参考方案6】:

http://jqueryui.com/demos/datepicker/#icon-trigger

提供了一个非常好的示例代码。

【讨论】:

此示例使用允许您指定特定图像的 datepicker 属性。提出的问题是如何改用 jquery 图标集。【参考方案7】:

借用并扩展 Loktar 的答案,你可以尝试这样的事情,注意我只在 FF10 中测试过,但我不明白为什么它在其他浏览器中不起作用。

$('.date-picker').datepicker(showOn: 'button')
    .next('button').addClass('date-picker-button-hidden')
    .after($('<span/>')
        .addClass('ui-icon').addClass('ui-icon-calendar').addClass('date-picker-icon'));

注意,在这个例子中,date-picker-button-hiddendate-picker-icon 是我自己的类,因为我不喜欢 jQuery 的样式直接使用 CSS 类。应用以下 CSS:

span.date-picker-icon

    display: inline-block;
    z-index: -1;
    position: relative;
    left: -16px;


button.date-picker-button-hidden

    opacity: 0.0;
    filter: alpha(opacity=0);
    height: 16px;
    width: 16px;
    margin: 0;
    padding: 0;

这实际上是在按钮后面放置一个常规的 jQuery span 图标。该按钮是完全透明/不透明的(通过 CSS),但是因为它仍然在图标顶部,所以单击图标会触发按钮单击事件。

【讨论】:

我尝试了这个,因为 Loktar 的回答将图标对齐到按钮的左侧。但我发现跨度上的 position:relative 使它完全消失在屏幕外。也许它依赖于一些祖先元素的定位...无论如何我回到 Loktar 的解决方案并添加 text: false 到按钮,现在图标居中并且按钮使用 jQuery-UI 主题,所以我不确定这个解决方案会带来什么。【参考方案8】:

我使用这个 jquery 代码来获取一个文本输入字段的日期选择器和一个 jquery UI 图标作为日期选择器按钮上的图像。

// Apply jQuery UI DatePicker to all controls with class = datepicker
    $('.datepicker').datepicker(
        showWeek: true,
        dateFormat: "yy-mm-dd",
        buttonImage: "ui-icon-calendar",
        regional: "sv",
        minDate: "-10Y",
        maxDate: "+10Y",
        showButtonPanel: true,
        buttonImageOnly: false,
        showWeekNumber: true,
        firstDay: 1,
        showOtherMonths: true,
        selectOtherMonths: true,
        changeMonth: true,
        changeYear: true,
        showOn: "both"

    ).next('button').text('Show calendar').button( icons:  primary: 'ui-icon-calendar' , text: false );

【讨论】:

【参考方案9】:

更改:显示在:“两者”,//按钮

<input type="text" name="date_from" id="date_from" />        
<input type="text" name="date_to" id="date_to" />

$(function() 
$("#date_from").datepicker(
    changeMonth: true,
    changeYear: true,
    numberOfMonths: 1,
    showOn: "both",//button
    buttonImageOnly: false,
    showAnim: "slideDown",
    dateFormat: "yy-mm-dd",
    onClose: function(selectedDate) 
        $("#date_to").datepicker("option", "minDate", selectedDate);
    
);
$("#date_to").datepicker(
    changeMonth: true,
    changeYear: true,
    numberOfMonths: 1,
    showOn: "both",//button
    buttonImageOnly: false,
    showAnim: "slideDown",
    dateFormat: "yy-mm-dd",
    onClose: function(selectedDate) 
        $("#date_from").datepicker("option", "maxDate", selectedDate);
    
);
);

http://jsfiddle.net/wimarbueno/fpT6q/

【讨论】:

【参考方案10】:

在手动设置按钮/图标的过程中,您可以使用How to combine the jQueryUI DatePicker's Icon Trigger with Bootstrap 3's Input Groups 中的这个示例让 JS 点击事件将焦点设置在相关日期输入字段上,从而触发 jQueryUI 日期功能出现。

或者,正如documentation 所述,您可以使用show 方法来显示日期选择器(请注意,“如果日期选择器附加到输入,则输入必须可见才能显示日期选择器。 ")。

$( ".selector" ).datepicker( "show" );

这允许您使用输入字段旁边的任何按钮/图像/图标,并能够单击按钮/图像/图标来触发输入字段的日期功能。

【讨论】:

【参考方案11】:

我通过将我的图标按钮的 HTML 直接添加到 buttonText 选项并禁用 buttonImage 选项来实现此功能。

$('.datepicker').datepicker(
    showOn: "both",
    buttonText: '<i class="icon-calendar"></i>',
    dateFormat : "DD, MM d"
);

【讨论】:

以上是关于jquery ui datepicker 年月日之间以横线隔开的主要内容,如果未能解决你的问题,请参考以下文章

jQuery UI 中的 datepicker( )方法

使用 jquery-ui/datepicker 的内存泄漏

jquery UI datepicker汉化

使用 jquery 验证和 jquery-ui datepicker

将 JQuery UI Datepicker 与来自 Jquery UI 主题的图标一起使用

jquery Ui datepicker()