Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在引导日期选择器中将日期初始设置为空_Javascript_Jquery_Twitter Bootstrap_Datepicker_Bootstrap Datepicker - Fatal编程技术网

Javascript 在引导日期选择器中将日期初始设置为空

Javascript 在引导日期选择器中将日期初始设置为空,javascript,jquery,twitter-bootstrap,datepicker,bootstrap-datepicker,Javascript,Jquery,Twitter Bootstrap,Datepicker,Bootstrap Datepicker,我正在我的站点中使用。datepicker将用于定义搜索筛选器。我需要datepicker输入元素的初始值为空,这样它就不会为搜索结果引入日期过滤器。当用户单击链接到Datepicker的文本输入时,Datepicker弹出框应选择下个月的第一天 问题:如果我要设置初始日期(如下所示),文本输入将填充今天的日期,这不是我想要的。但是,如果我没有设置初始日期,日期选择器将显示。我该怎么办 类似于:的演示 JS代码 var now = new Date(); var nextMonth = new

我正在我的站点中使用。datepicker将用于定义搜索筛选器。我需要datepicker输入元素的初始值为空,这样它就不会为搜索结果引入日期过滤器。当用户单击链接到Datepicker的文本输入时,Datepicker弹出框应选择下个月的第一天

问题:如果我要设置初始日期(如下所示),文本输入将填充今天的日期,这不是我想要的。但是,如果我没有设置初始日期,日期选择器将显示。我该怎么办

类似于:的演示

JS代码

var now = new Date();
var nextMonth = new Date();
nextMonth.setDate(1);
nextMonth.setMonth(now.getMonth() + 1);
var prettyDate =  nextMonth.getMonth() + '/' + nextMonth.getDate() + '/' + nextMonth.getFullYear();
$('#listing_filter_available').val(prettyDate);
$('#listing_filter_available').datepicker();
<input type="text" id="listing_filter_available" class="input-small" placeholder="Date Available" />
HTML代码

var now = new Date();
var nextMonth = new Date();
nextMonth.setDate(1);
nextMonth.setMonth(now.getMonth() + 1);
var prettyDate =  nextMonth.getMonth() + '/' + nextMonth.getDate() + '/' + nextMonth.getFullYear();
$('#listing_filter_available').val(prettyDate);
$('#listing_filter_available').datepicker();
<input type="text" id="listing_filter_available" class="input-small" placeholder="Date Available" />

不编辑bootstrap-datepicker.js是不可能的

默认日期来自value=,如果保留为空,则对应于01-01-1970(unix日期开始)

即使你在这个问题上悬赏,工作也太多了

我建议你找一个不同的插件


我不太确定jQueryUIDatePicker,因为它与TwitterBoostrap不兼容,我刚刚遇到了一个非常类似的用例。通过对bootstrap-datepicker.js进行一些调整,我相信我已经成功了

您需要在两个位置编辑脚本

对于日期字段,我正在检查日期(this.date)是否设置为Unix开始日期(.e.g空日期)。如果是,请退出并将字段留空

(行:约95)

对于下拉日历,我还要检查日期(this.date)是否设置为Unix开始日期。如果是,请将日期设置为今天。我这样做是为了当用户单击日期字段时,它显示当前月份,而不是1970年2月

(行:144-大约)

填充:函数(){


我相信这就是你所需要做的。我刚刚在我的解决方案中实现了这一点,因此,如果有人发现任何问题或有任何更好的建议,我很乐意听到。

有一种更简单的方法可以做到这一点!设置一个值

$('#listing_filter_available').datepicker();
$('#listing_filter_available').datepicker('setValue', nextMonth);
设置空白值的步骤

$('#listing_filter_available').datepicker();
$('#listing_filter_available').val('');

我也有同样的问题,我提出了这个解决方案,我创建了一个函数来检索日期:

getDate: function (input) {
  if ($(input).val() == '') {
    return '';
  }

  return $(input).data('datepicker').date;
}
注: 我正在努力使每个能手和二传手标准化
为了能够在将来更改datepicker插件,我正在使用bootstrap v3.1.1和

$('#listing_filter_available').datepicker('setValue', nextMonth);
不适合我

你必须使用

$('#listing_filter_available').datepicker('setDate', nextMonth);

为了填充datepicker控件

我遇到了类似的问题,这对我来说很有效

$(".date-picker").datepicker("setDate", "");

因此,现在当我的页面加载默认为空时,该字段不是必需的,这样他们就不必选择日期,我的控制器将处理该字段,或者他们可以选择日期,控制器也将处理该字段。

如果找不到此类功能,请不要编辑源代码。请保持智能。查找CSS类“active”并删除它可以动态更改或覆盖样式表中的规则

例如,覆盖此规则(对日期选择器使用更强的选择器):


或者使用js动态删除此类。

在bootstrap的最新版本中,我使用的是bootstrap V3.3.6和bootstrap timepicker V0.5.2,以下功能非常简单:

$('#txtTimepicker').timepicker().val('');
就我个人而言,我使用MVC razor语法在val集中进行条件检查,以区分“添加”和“编辑”,如下所示:

为了使我的工作100%符合要求,我明确设置了输入值和以下选项:

.timepicker({ format: 'HH:mm:ss', 'defaultTime' : 'value', 'showMeridian': false, 'showSeconds': true, 'disableFocus' : false})

有关更多选项,请查看源代码文件或链接以获取最新版本

$("input[type=date]").datepicker({ defaultViewDate: {} });

资料来源:

这是我最喜欢的

$('#datetimepicker').datetimepicker({
   defaultDate:'',     
});

您现在需要将语言添加到formatDate:DPGlobal.formatDate(this.date,this.format,this.language)。此外,最好将unix日期设置为新日期(“1970-01-01T00:00:00Z”),这样它就不会被时区调整。如果有人在更高版本中查找此语言,请在setValue函数中添加代码:if(newDate.length==0){返回false;}它将跳过默认日期。这对于搜索等用途非常有用,因为您需要一个空白文本框来开始搜索。我怀疑这个问题与当前版本的Twitter bootsrap datepicker有关。我很想知道您使用的是哪个版本。AFAIK在输入字段上初始化datepicker不会再给它任何默认值。这s让我觉得现在的理想解决方案是升级到某个版本。至少版本1.3.1似乎不需要任何疯狂的修改就可以工作。如果不工作:这取决于您在哪里使用$(''listing'u filter'u available')。val('');在关闭父函数()块之前使用它。
.timepicker({ format: 'HH:mm:ss', 'defaultTime' : 'value', 'showMeridian': false, 'showSeconds': true, 'disableFocus' : false})
$("input[type=date]").datepicker({ defaultViewDate: {} });
$('#datetimepicker').datetimepicker({
   defaultDate:'',     
});