按下时填充列表中jquery筛选器字段的日期选择器

按下时填充列表中jquery筛选器字段的日期选择器,jquery,jquery-mobile,jquery-ui-datepicker,Jquery,Jquery Mobile,Jquery Ui Datepicker,正如标题所说,我需要从日期选择器获取日期以筛选事件列表的帮助 到目前为止,我得到的是: 我有一个日期选择器和事件列表。当我按下日期时,我想用日期选择器中选择的日期筛选列表。但是,我找不到正确的方法来调用列表的筛选器字段,因此我可以完成此操作 这是日期选择器的代码,当我在日期选择器中按下日期时,我会收到一个警报,如下面的注释所示,这也是我希望在筛选框中输入内容的地方: $("#datepick").datepicker({ beforeShowDay: function(date) { /

正如标题所说,我需要从日期选择器获取日期以筛选事件列表的帮助

到目前为止,我得到的是:

我有一个日期选择器和事件列表。当我按下日期时,我想用日期选择器中选择的日期筛选列表。但是,我找不到正确的方法来调用列表的筛选器字段,因此我可以完成此操作

这是日期选择器的代码,当我在日期选择器中按下日期时,我会收到一个警报,如下面的注释所示,这也是我希望在筛选框中输入内容的地方:

$("#datepick").datepicker({
beforeShowDay: function(date) {
    //This only marks the dates where there are events.
    var result = [true, '', null];
    var matching = $.grep(events, function(event) {
        return event.Date.valueOf() === date.valueOf();
    });

    if (matching.length) {
        result = [true, 'highlight', null];
    }
    return result;
},
onSelect: function(dateText) {
    //This is what happens when you click a date.
    var date,
        selectedDate = new Date(dateText),
        i = 0,
        event = null;
    //An alert just to make sure it works up to this point. Here the list should be filtered.
    alert(selectedDate);    

}
})

然后我们有了如下的html:

<form action="#" method="get">
        <div data-role="fieldcontain">
            <div name="datepick" id="datepick"></div>
            <br />
        </div>      
    </form>

    <ul data-role="listview" data-filter="true" id="mylist" name="mylist" >

            <li name="search" id="search" data-filtertext="Surfa på internet Mellangård Markaryd 2017-03-09 (arrangör)"><a href="addaktivitet.asp?id=2244" data-ajax="false">
            <h3>Surfa på internet</h3>
            <p><strong>Ort: Markaryd</strong></p>
            <p>Arrangör: 1</p>
            <p class="ui-li-aside"><strong>Datum: 2017-03-09
                                    <br />Tider: 13.30 - 16.00 </strong></p>
        </a></li>

            <li name="search" id="search" data-filtertext="Bingo Stig Inn Strömsnäsbruk 2017-03-09 (arrangör)"><a href="addaktivitet.asp?id=2252" data-ajax="false">
            <h3>Bingo</h3>
            <p><strong>Ort: Strömsnäsbruk</strong></p>
            <p>Arrangör: 1</p>
            <p class="ui-li-aside"><strong>Datum: 2017-03-09
                                    <br />Tider: 13.30 - 16.00 </strong></p>
        </a></li>

            <li name="search" id="search" data-filtertext="Filmafton Mellangård Markaryd 2017-03-13 (arrangör)"><a href="addaktivitet.asp?id=2245" data-ajax="false">
            <h3>Filmafton</h3>
            <p><strong>Ort: Markaryd</strong></p>
            <p>Arrangör: 1</p>
            <p class="ui-li-aside"><strong>Datum: 2017-03-13
                                    <br />Tider: 16.00 - 19.30 </strong></p>
        </a></li><!-- and so on...--></ul>

如果可以在不使用筛选框的情况下筛选列表,也可以。

我建议您将两个筛选器分开,这样您就可以同时按日期和自由文本进行筛选

这种方法的一个优点是,您可以将本地化的日期可视化与用于在数据库中存储信息的标准日期格式分开

在我下面的建议中,为了实现这样一个多过滤器,我定义了一个自定义数据属性,该属性只包含事件的日期-然而,这不是严格必要的-最后,我将在filterable小部件的过滤器回调中结合这两个搜索条件:

var dateFilter=,dateFilterPlaceholder=选择一个日期; 函数clearDateFilter{ 日期过滤器=; $dp-button.textdateFilterPlaceholder; $mylist.filterablerefresh; } 函数matcherDateIDX,searchValue{ var-ret=false; ifdateFilter!=={ var filtedate=$this.datadatefilter | |; 如果filtdate!=dateFilter{ ret=true;//过滤掉这个 } } 如果searchValue&&searchValue.length>0{ searchValue=searchValue.toLowerCase; var filtertext=$this.datafiltertext.toLowerCase | |; 如果filttext.indexOfsearchValue<0{ ret=true;//过滤掉这个 } } 返回ret; } $document.onpagecreate,第一页,函数{ $datepicker.datepicker{ onSelect:functiondateText{ 变量日期=$this.datepickergetDate; 变量d=date.getDate,m=date.getMonth+1,y=date.getFullYear; dateFilter=+y+-+m>9?m:0+m+-+d>9?d:0+d; $dp-popup.popupclose; $dp-button.textdateText; $mylist.filterablerefresh; } }; $mylist.filterableoption、filterCallback、matchOrDate; }; /* *jQueryMobile:jQueryUIDatePicker猴子补丁 * http://salman-w.blogspot.com/2014/03/jquery-ui-datepicker-for-jquery-mobile.html */ 作用{ //在触发器按钮上使用jQuery移动图标 $.datepicker.\u triggerClass+=ui-btn ui-btn right ui-icon-carat-d ui-btn icon notext ui-corner all; //在生成的HTML中用jQuery Mobile CSS类替换jQuery UI CSS类 $.datepicker.\u generateHTML\u old=$.datepicker.\u generateHTML; $.datepicker.\u generateHTML=functioninst{ 返回$.htmlthis.\u generateHTML\u oldinst .find.ui-datepicker-header.removeClassui-widget-header ui-helper-clearfix.addClassui-bar-inherit.end .find.ui-datepicker-prev.addClassui-btn ui-btn left ui-icon-carat-l ui-btn-icon-notext.end .find.ui-datepicker-next.addClassui-btn ui-btn right ui-icon-carat-r ui-btn-icon-notext.end .find.ui-icon.ui-icon-circle-triangle-e、.ui-icon.ui-icon-circle-triangle-w.replaceWithfunction{ 返回this.childNodes; }.完 .findspan.ui-state-default.removeClassui-state-default.addClassui-btn.end .finda.ui-state-default.ui-state-active.removeClassui-state-default ui-state高亮显示ui优先级辅助ui-state-active.addClassui-btn ui-btn-active.end .finda.ui-state-default.removeClassui-state-default ui-state高亮显示ui-priority-secondary.addClassui-btn.end .find.ui-datepicker-buttonpane.removeClassui-widget-content.end .find.ui-datepicker-current.removeClassui-state-default ui-priority-secondary.addClassui-btn ui-btn inline ui-mini.end .find.ui-datepicker-close.removeClassui-state-default ui-priority-primary.addClassui-btn ui-btn inline ui-mini.end .html; }; //在datepicker div上用jQuery Mobile CSS类替换jQuery UI CSS类,在datepicker div上取消绑定mouseover和mouseout事件 $.datepicker.\u newInst\u old=$.datepicker.\u newInst; $.datepicker.\u newInst=函数目标,内联{ var inst=此。_newInst_oldtarget,内联; if inst.dpDiv.hasClassui-widget{ inst.dpDiv.removeClassui-widget-ui-widget-content ui-helper-clearfix.addClassinline?ui内容:ui内容ui覆盖阴影ui-body-a.unbindmouseover mouseout; } 返回仪表; }; }; /* *jQueryMobile:jQueryUIDatePicker猴子补丁 * http://salman-w.blogspot.com/2014/03/jquery-ui-datepicker-for-jquery-mobile.html */ .ui日期选择器{ 显示:无; } /*设置高度和左/右边距以适应上一个/下一个图标 */ .ui日期选择器标头{ 位置:相对位置; 填充:0.3125em 2.0625em; 线高:1.75em; 文本对齐:居中; } .ui日期选择器标头.ui btn{ 保证金:-1px0; } /*日历的固定宽度布局;单元格的宽度是固定的*/ .ui日期选择器日历{ 边界塌陷:塌陷; 线高:2; } .ui日期选择器日历.ui btn{ 保证金:0; 填充:0; 宽度:2米; 行高:继承; } .ui datepicker today.ui btn{ 文字装饰:下划线!重要; } .ui日期选择器天数单元格结束.ui btn{ 边框颜色:继承!重要; } .ui日期选择器按钮pane.ui btn{ 浮动:左; 保证金:0.5em 0; 填充物:0.5em 1em; } .ui日期选择器按钮平面.ui btn:最后一个子项{ 浮动:对; } /*类,该类可以添加到datepicker元素的包装器中;为触发按钮腾出空间*/ .dp输入按钮包装{ 位置:相对位置; 右侧填充:2.5em; } .dp输入按钮包装.ui btn{ 顶部:0.1875em; 保证金:0; } 过滤事件 页脚