我有这个有日期输入的表格。在Javascript中,我可以确保所选值的最佳方式是未来日期或过去日期。我已经实现了jQuery日期选择器来选择日期,请参阅下面的代码
<html>
<!--maina-->
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<link href="main.css" rel="stylesheet" type="text/css"/>
<script>
$(function() {
var date = $('#datepicker').datepicker({ dateFormat: 'yy-mm-dd' }).val();
});
function ValidateForm(){
var date_of_circulation = document.forms["myForm"]["date_of_circulation"].value;
if (date_of_circulation == null || date_of_circulation ==""){
alert ("You have to select the date the manuscript was circulated");
return false;
}
}
</script>
<form enctype="multipart/form-data" name = "myForm" action = "" onsubmit="return ValidateForm()" method = "post">
Date of circulation:<input name="date_of_circulation" input type="text" id="datepicker"></p>
<input name = "add_manuscript" type="submit" value = "submit">
</form>
</html>
答案 0 :(得分:3)
你可以这样做
var yourDate = new Date("12/5/2015"); //input value
var todayDate = new Date(); //Gets the today's date value
您必须使用函数setHours
if(yourDate.setHours(0,0,0,0) == todayDate.setHours(0,0,0,0));
{
//Do your stuff
}
注意:您也可以使用jquery的datepicker执行此操作
var currentDate = new Date();
$("#datepicker").datepicker("setDate", currentDate);
这样您就可以确定已经选择了今天的日期。
编辑:您还可以查看 datejs
答案 1 :(得分:0)
如果日期字段必须设置为当前日期,则没有未来日期或过去日期 将文本字段的默认值设置为当前日期,您不需要使用日期选择器,因为没有任何其他日期选项的日期选择器不是用户友好的。 同样通过这种方式,您无需在提交时验证表单。
<input name="date_of_circulation" input type="text" id="datepicker" value="<?php echo date('Y-m-d'); ?>" readonly="readonly">
将输入框设置为只读,以便用户无法更改日期。
答案 2 :(得分:0)
我通过引入maxdate和mindate找到了一个有效而简单的解决方案,如下所述:date picker restrict date range。重新考虑验证规则后,我决定date_of_circulation值的逻辑验证可以是过去的日期但不超过当前日期,因此将日期选择器中的var日期更改为
var date = $("#datepicker").datepicker({ maxDate: new Date,dateFormat: 'yy-mm-dd', minDate: new Date (0) });