Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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
如何验证日期、月份和日期的3个单独输入字段;使用jquery或javascript的年份?_Javascript_Jquery_Html_Css_Validation - Fatal编程技术网

如何验证日期、月份和日期的3个单独输入字段;使用jquery或javascript的年份?

如何验证日期、月份和日期的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

我有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> 


您可以通过以下方式使用输入框:

<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的限制