如果输入不是日期,如何用当前日期替换文本框?

时间:2017-10-06 11:28:07

标签: jquery asp.net

我的网络表单上有一个日期选择器。如果用户提供的数据不是日期,那么我想用当前日期替换该输入。为此,我尝试使用以下功能,但它不起作用(没有错误/没有预期结果)
Jquery的

$('#datepicker1').change(function () {       
        var timestamp = Date.parse($("input[name='datepicker1']").val())
        if (isNaN(timestamp) == true) {
            var d = new Date();
            var month = d.getMonth() + 1;
            var day = d.getDate();
            var output = (('' + day).length < 2 ? '0' : '') + day + '/' +
                (('' + month).length < 2 ? '0' : '') + month + '/' + d.getFullYear()
            $('#datepicker1').val(output);
        }
    });


设计

<div class="form-group">
<label class="col-sm-4 control-label">Joining Date</label>
<div class="col-sm-8">
<input type="text" class="form-control" placeholder="dd/mm/yyyy" id="datepicker1" name="datepicker1" />
</div>
</div>

希望你有这个主意,不擅长jquery请帮助我。

2 个答案:

答案 0 :(得分:0)

检查

var value=$.trim($("#datepicker1").val());

if(value.length<0)
{
  var now = new Date();
  $('#datepicker1').val(now);
}

使用Date.parse()方法检查日期是否有效:

var timestamp = Date.parse($("#datepicker1").val()) 

if (isNaN(timestamp) == false) { 
    var d = new Date(timestamp); 
    $('#datepicker1').val(d);
} 

答案 1 :(得分:0)

请检查jsFiddle演示

var d = new Date();
var month = d.getMonth() + 1;
var day = d.getDate();
var output = (('' + day).length < 2 ? '0' : '') + day + '/' +
    (('' + month).length < 2 ? '0' : '') + month + '/' + d.getFullYear()
console.log(output)
$('#datepicker1').val(output);

https://jsfiddle.net/dhaval_123/g4nsjkLk/