【问题标题】:Is there a clean jQuery method of increasing a datepicker field by one day using blur event?是否有一种干净的 jQuery 方法可以使用 blur 事件将 datepicker 字段增加一天?
【发布时间】:2015-05-23 03:25:43
【问题描述】:

我的代码有效,但它会在正确更新字段之前抛出 NaN“不是数字”。我只是对效率很挑剔,因为第二个字段将是一个隐藏的管理字段,因为这是为了修复一个错误,即 CRM 在与重力表单同步到 Agilecrm 时由于某种未知原因减去一天,所以我需要而是推送 +1 日期。

这是我的代码。正如我所说,它有效,但我想知道是否有一个更干净的纯 jQuery 方法,而无需在 javascript 之间来回交叉。尽管使用 javascript 的其他解决方案可能很有用。我知道我可能会在某处放置某种 if not (!datepicker) 逻辑,但需要语法和最佳实践来做到这一点。

问的原因:很多地方的答案就是使用:

    newdate.setDate(newdate.getDate() + 1);

但是,直到我找到额外的连接设置以将最终的 mm/dd/yyyy 格式组合在一起以解决此问题,此答案才起作用,而且我也没有在 document.ready 上看到一个好的 jQuery 监听模糊事件解决方案更新任何其他文章中的另一个日期字段,因此认为这值得花时间讨论。

还有here's a link 到包含表单和已填充的固定日期字段的页面。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

<script>

$(document).ready(function(){

$("#input_6_4").blur(function(){


var tt = $("#input_6_4").val(); 

//alert(tt);

var date = new Date(tt);
var newdate = new Date(date);

newdate.setDate(newdate.getDate() + 1);

var dd = newdate.getDate();
var mm = newdate.getMonth() + 1;
var y = newdate.getFullYear();

var FixDate = mm + '/' + dd + '/' + y;

// alert(FixDate);

$("#input_6_14").attr('value',FixDate);

    });
});

</script> 

Megalayer: Complete End to End Managed Website Solutions

【问题讨论】:

  • 您的第一个日期字段模糊事件有太多的 ajax 调用?我可以知道这是为什么吗?
  • 不确定您指的是什么。你的意思是我如何使它成为一个嵌套函数?我知道这是不正确的,只是我让它工作并想要正确的解决方案,因为我学会了更干净地编码。您在下面的回答解决了我注意到的另一个问题,即如果用户选择该月的最后一天,脚本不会增加月份。我已经开始编写一组复杂的嵌套 if(then) 参数。你是怎么处理的?我不知道在哪里或如何解决它。

标签: date datepicker increment blur document-ready


【解决方案1】:

以下是为您的代码优化的代码。

$(document).ready(function(){

$("#input_6_4").blur(function(){

  var newdate = new Date(this.value);
  newdate.setDate(newdate.getDate() + 1);
  $("#input_6_14").val(newdate.toLocaleDateString());

});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Old Date: <input id="input_6_4" / value="5/20/2015"> 
<br/>
<br/>
New Date: <input id="input_6_14" />

【讨论】:

  • 看来javascript函数:toLocaleDateString |是合法地将特定天数添加到包含 mm/dd/yyy 日期值的预先存在的变量的有力答案。 (除了复杂的 toLocaleDateString 的返回响应谢谢@vinayakj
  • 对于那些在处理日期格式时会有更多格式问题的其他人来说,值得参考:[link]stackoverflow.com/questions/12871611/…:Date.toLocaleDateString() 是如何工作的?
猜你喜欢
  • 2011-06-25
  • 2021-05-19
  • 1970-01-01
  • 2017-12-15
  • 2018-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-13
相关资源
最近更新 更多