Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.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/1/angularjs/25.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 设置无效的日期字符串HTML5日期输入_Javascript_Angularjs_Html_Date - Fatal编程技术网

Javascript 设置无效的日期字符串HTML5日期输入

Javascript 设置无效的日期字符串HTML5日期输入,javascript,angularjs,html,date,Javascript,Angularjs,Html,Date,我想知道在一些JS检查之后,是否可以将无效的日期字符串设置为HTML5日期输入,例如“今天”,而不是显示XX-XX-XXXX日期 请注意,我使用的是angular-1.6,它使用的是内置指令,这使得这种攻击更难实现 <input id="dateNative" type="date" ng-model="date.selectedDate" min="{{minDate | date:'yyyy-MM-dd'}}"> function Controller($s

我想知道在一些JS检查之后,是否可以将无效的日期字符串设置为HTML5日期输入,例如“今天”,而不是显示XX-XX-XXXX日期

请注意,我使用的是angular-1.6,它使用的是内置指令,这使得这种攻击更难实现

<input id="dateNative"
   type="date"
   ng-model="date.selectedDate"
   min="{{minDate | date:'yyyy-MM-dd'}}">


function Controller($scope, $log, $element, $document) {
  $scope.date = {};
  $scope.minDate = new Date();

  this.$postLink = () => {
    this.dateCtrl = angular.element($document[0].getElementById('dateNative')).controller('ngModel');
    this.dateCtrl.$parsers.unshift(date => {
      if (moment(new Date()).isSame(date, 'day')) {
        return 'Immediately';
      }
      return date;
    });
  };
}

功能控制器($scope、$log、$element、$document){
$scope.date={};
$scope.minDate=新日期();
此。$postLink=()=>{
this.dateCtrl=angular.element($document[0].getElementById('dateNative')).controller('ngModel');
this.dateCtrl.$parsers.unshift(日期=>{
if(时刻(新日期()).isname(日期,'day')){
立即返回;
}
返回日期;
});
};
}

尝试将输入的
类型
更改为文本

this.dateCtrl.$parsers.unshift(date => {
  if (moment(new Date()).isSame(date, 'day')) {
    $element[0].type = 'text';
    return 'Immediately';
  }
  $element[0].type = 'date';
  return date;
});

尝试将输入的
类型
更改为文本

this.dateCtrl.$parsers.unshift(date => {
  if (moment(new Date()).isSame(date, 'day')) {
    $element[0].type = 'text';
    return 'Immediately';
  }
  $element[0].type = 'date';
  return date;
});
元素可用于定义输入类型

<input id="dateNative"
   type="{{date.type}}"
   ng-model="date.selectedDate"
   min="{{minDate | date:'yyyy-MM-dd'}}" />
元素可用于定义输入类型

<input id="dateNative"
   type="{{date.type}}"
   ng-model="date.selectedDate"
   min="{{minDate | date:'yyyy-MM-dd'}}" />

像这样,我将丢失输入日期,特别是用户手动输入日期的移动体验…我们不能同时使用这两种方式…无效值并保留
日期
类型。那就得想别的办法了。也许使用
谢谢,但这不适合我,UI团队不会接受添加标签来显示所选日期:DIdea仅对无效值使用标签(顶部输入)。。。。否则它将不会像这样可见,我将丢失输入日期,特别是用户将手动输入日期的移动体验…我们不能同时使用这两种方式…无效值并保留
日期
类型。那就得想别的办法了。也许使用
谢谢,但这不适合我,UI团队不会接受添加标签来显示所选日期:DIdea仅对无效值使用标签(顶部输入)。。。。否则它将不可见谢谢,这很有帮助,但它只需要做一些工作使其更具动态性:)我建议在附加到
元素的内部进行动态类型更改。避免在视图控制器中执行DOM操作。有关更改
类型的指令示例,请参阅。谢谢,这很有帮助,但需要做一些工作才能使其更加动态:)我建议在附加到
元素的内部执行动态类型更改。避免在视图控制器中执行DOM操作。有关更改
类型的指令示例,请参阅。