Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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/3/html/81.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
Javascript $setvalidity未将错误设置为指定的条件_Javascript_Html_Angularjs - Fatal编程技术网

Javascript $setvalidity未将错误设置为指定的条件

Javascript $setvalidity未将错误设置为指定的条件,javascript,html,angularjs,Javascript,Html,Angularjs,我正在尝试一个简单的angular日期验证,其中todate在提交时给出一条错误消息,当选择的日期超过当前日期时。但产出并不像预期的那样。在选择任何日期时都会出现错误,但调试断点中的条件正在正确检查 plunker链接“: 代码如下: $scope.form1submit=function(date){ var today = new Date(); var dd = today.getDate(); var mm = today.getMont

我正在尝试一个简单的
angular
日期验证,其中
todate
在提交时给出一条错误消息,当选择的日期超过当前日期时。但产出并不像预期的那样。在选择任何日期时都会出现错误,但调试断点中的条件正在正确检查

plunker链接“:

代码如下:

$scope.form1submit=function(date){

        var today = new Date();
        var dd = today.getDate();
        var mm = today.getMonth()+1; //January is 0!
        var yyyy = today.getFullYear();

        if(dd<10) {
            dd='0'+dd
        } 

        if(mm<10) {
            mm='0'+mm
        } 

        todayDate = mm+'/'+dd+'/'+yyyy;
        console.log(todayDate);
        var toDate = date.toDate;
        var toDatelength = date.toDate.length;


        if(toDate > todayDate && toDatelength > 0){

            $scope.form1.todate.$setValidity("todateerror", false);

        }else{
            $scope.form1.todate.$setValidity("todateerror", true);
        }
        };
$scope.form1submit=函数(日期){
var today=新日期();
var dd=today.getDate();
var mm=today.getMonth()+1;//一月是0!
var yyyy=today.getFullYear();
如果(dd 0){
$scope.form1.todate.$setValidity(“todateerror”,false);
}否则{
$scope.form1.todate.$setValidity(“todateerror”,true);
}
};


迄今为止
到现在的日期比今天的日期长
我已经修复了你的代码

  • 1) 不应该将日期作为字符串进行比较
  • 2) 您必须使用
    form1.todate.$error
    而不是
    form1.todate.$error.todateerror
我已经修复了您的代码

  • 1) 不应该将日期作为字符串进行比较
  • 2) 您必须使用
    form1.todate.$error
    而不是
    form1.todate.$error.todateerror

您的模型中有什么?请创建一个/etc示例,您的模型中有什么?创建一个/etc示例,非常感谢。但它能够读取给出的日期(NaN)(不是数字)在控制台中。我按照我的日期格式修改了拆分。但仍然不走运。在调试时,日期被正确设置为toDate变量。但在控制台中,我无法读取数据。我将挖掘更多数据并返回。非常感谢。但它能够从给出(NaN)(不是数字)的日期读取数据在控制台中。我按照我的日期格式修改了拆分。但仍然没有成功。在调试时,日期被正确设置为toDate变量。但在控制台中,我无法读取数据。我将挖掘更多数据并返回。
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="http://www.jqueryscript.net/demo/Simple-Date-Picker-For-jQuery-AngularJS-Datepicker/"></script>
<span class="">
        <label class="">to date</label>
        <input id="toDate" name="todate" type="text" class="" 
               ng-model-options="{allowInvalid: true}"
               placeholder="To Date" 
               data-datepicker="{theme: 'flat'}" 
               ng-model="date.toDate" 
               ng-disabled="date.fromdate" 
               ng-required="date.fromdate" />
       <span ng-show="form1.$submitted && form1.todate.$error">

           <div ng-message="todateerror" class="">To date is more than todays date</div>
       </span>
</span>