如何验证日期、月份和日期的3个单独输入字段;使用jquery或javascript的年份?
我有3个单独的日期、月份和年份输入字段 日期字段只接受范围1-31的值,月份字段只接受范围1-12的值。我想要的日期格式是dd-mm-yyyy 下面是我的html代码,请帮助我任何一个如何验证日期、月份和日期的3个单独输入字段;使用jquery或javascript的年份?,javascript,jquery,html,css,validation,Javascript,Jquery,Html,Css,Validation,我有3个单独的日期、月份和年份输入字段 日期字段只接受范围1-31的值,月份字段只接受范围1-12的值。我想要的日期格式是dd-mm-yyyy 下面是我的html代码,请帮助我任何一个 <div class="date"> <input id="date" name="day" /> <input id="month" name="month" /> <input id="year" name="year /> </div
<div class="date">
<input id="date" name="day" />
<input id="month" name="month" />
<input id="year" name="year />
</div>
您可以通过以下方式使用输入框:
<input type="number" name="date" min="1" max="31" />
<input type="number" name="month" min="1" max="12" />
<input type="number" name="year" min="1900" max="9999" />
最好使用日期字段:
<input type="date" name="date" id="date">
然后根据您的要求分别指定日期、月份和年份。我自己做一点练习,希望这能有所帮助
$(“#提交”)。单击(函数(){
var date=parseInt($('#date').val());
var month=parseInt($('#month').val();
var year=parseInt($('#year').val();
如果(isNaN(日期)| | isNaN(月)| | isNaN(年)){
警报(“格式错误”);
返回false;
}否则{
如果(日期>31 | |日期<1){
警报(“错误日期”);
返回false;
}如果(月=4 | |月=6 | |月=9 | |月=11)和日期=31){
警报(“错误日期”);
返回false;
}否则,如果(月==2){
var isleap=(第%4年==0&&(第%100年!=0 | |第%400年==0));
如果(日期>29 | |(日期==29&&!isleap))
警报(“错误日期”);
返回false;
}
如果(月>12 | |月<1){
警报(“错误月份”);
返回false;
}
如果(年份>2050年|年份<1900年){
警报(“错误年份”);
返回false;
}
}
$('#myform')。提交();
});代码>
日期
月
年
尝试以下脚本:
<script>
function validateForm() {
var d = document.forms["myForm"]["date"].value;
var m = document.forms["myForm"]["month"].value;
var y = document.forms["myForm"]["year"].value;
if(d == null || d == ""){
alert("Please select date.");
return false;
}
if(m == null || m == ""){
alert("Please select date.");
return false;
}
if(y == null || y == ""){
alert("Please select date.");
return false;
}
if((m == 4 || m == 6 || m == 9 || m == 11) && d == 31) {
alert("Selected month contains only 30 days.");
return false;
}
if(m == 2 && d > 29 && (y%4 == 0)) {
alert("Selected month contains only 29 days.");
return false;
}
if((m == 2) && d > 28) {
alert("Selected month contains only 28 days.");
return false;
}
return true;
}
</script>
函数validateForm(){
var d=document.forms[“myForm”][“date”]。值;
var m=document.forms[“myForm”][“month”]。值;
var y=document.forms[“myForm”][“year”]值;
如果(d==null | | d==“”){
警报(“请选择日期”);
返回false;
}
如果(m==null | | m==“”){
警报(“请选择日期”);
返回false;
}
如果(y==null | | y==“”){
警报(“请选择日期”);
返回false;
}
如果((m==4 | | m==6 | | m==9 | | m==11)和&d==31){
警报(“所选月份仅包含30天。”);
返回false;
}
如果(m==2&&d>29&&(y%4==0)){
警报(“所选月份仅包含29天。”);
返回false;
}
如果((m==2)和&d>28){
警报(“所选月份仅包含28天。”);
返回false;
}
返回true;
}
形式是:
<form name="myForm" action="demo_form.asp" onsubmit="return validateForm()" method="post">
<input type="number" id="d" name="date" min="1" max="31" />
<input type="number" id="m" name="month" min="1" max="12" />
<input type="number" id="y" name="year" min="1900" max="9999" />
<input type="submit" value="Submit">
</form>
检查一下!!我创建了3个文本字段,用于年月日,并通过javascript进行验证
<script type="text/javascript">
function dateChecker()
{
var dayValidate = "([1-9]|[12]\d|3[01])";
var monthValidate = "^(0?[1-9]|1[012])$";
var yearValidate = "/^(19[5-9]d|20[0-4]d|2050)$/";
var days = document.getElementById('dayId').value;
var months = document.getElementById('monthId').value;
var years = document.getElementById('yearID').value;
if (!days.match(dayValidate))
{
alert("Please, Enter Days between 1 to 31 ");
document.form1.dayId.focus();
return false;
}
if (!months.match(monthValidate))
{
alert("Please, Enter Months in between 1 to 12 ");
document.form1.monthId.focus();
return false;
}
if (!(+years >= 1900 && +years <= 2016))
{
alert("Please, Enter Years in between 1900 to 2016 ");
document.form1.yearID.focus();
return false;
}
}
</script>
<form name="form1">
<table>
<tr>
<td>
<input type="text" id="dayId"/>
</td>
<td>
<input type="text" id="monthId"/>
</td>
<td>
<input type="text" id="yearID"/>
</td>
</tr>
<tr>
<td>
<input type="submit" onclick="returndateChecker();"/>
</td>
</tr>
</table>
</form>
函数dateChecker()
{
var dayValidate=“[1-9]|[12]\d|3[01])”;
var monthValidate=“^(0?[1-9]| 1[012])$”;
var yearValidate=“/^(19[5-9]d | 20[0-4]d | 2050)$/”;
var days=document.getElementById('dayId').value;
var months=document.getElementById('monthId').value;
var years=document.getElementById('yearID')。值;
如果(!days.match(dayValidate))
{
警报(“请输入1到31之间的天数”);
document.form1.dayId.focus();
返回false;
}
如果(!月匹配(月有效期))
{
警报(“请输入介于1到12之间的月份”);
document.form1.monthId.focus();
返回false;
}
如果(!(+years>=1900&&+years您在任何地方尝试过任何解决方案吗?这里的社区帮助修复代码,而不是为任何人编写代码。检查此链接有,名字和第二个名字只有我正在尝试Valitate 3输入框包含日期、月份和年份客户要求为日期、月份和年份提供3个单独的输入字段您尝试过:几个月吗有30天,有些月份有31天和2月29天闰年,另一方面2月有28天,如何验证有没有其他方法来完成这个任务valiation@michel感谢您的编辑输入日接受任何大于1的数字,而不考虑31的限制