<input type="date" max="max"> 不设置最大日期角度 js

Posted

技术标签:

【中文标题】<input type="date" max="max"> 不设置最大日期角度 js【英文标题】:<input type="date" max="max"> does not set max date angular js<input type="date" max="max"> 不设置最大日期角度 js 【发布时间】:2021-08-19 14:32:09 【问题描述】:

我有以下 html 代码

<input class="col-5" type="date"
                   max=" vm.maxDate | date: 'yyyy-MM-dd' "
                   min=" vm.minDate | date: 'yyyy-MM-dd' "
                   ng-model="vm.endBy">

以下是控制器中的 Angular js 代码

vm.minDate = new Date(moment.utc().format(dateFormat));
vm.maxDate = new Date(moment.utc().format(dateFormat));
vm.endBy = new Date(moment.utc().format(dateFormat));

vm.maxDate.setDate(vm.minDate.getDate()+ 185);
vm.endBy.setDate(vm.minDate.getDate() + 185);

现在我的日历显示到 maxDate 日期选择为 maxdate 但是当我提交表单时它显示为未定义。我也尝试在 HTML 中打印 endBy,但它没有显示 maxDate。但是,对于早于 maxDate 的所有其他日期,它工作正常。

我不知道这有什么问题。有谁知道它为什么会这样?最大验证是否不检查是否相等,为什么在我提交时在输入框中设置 endBy 日期它说未定义?

【问题讨论】:

But when I submit the form it shows as undefined. 你忘了设置name 属性吗? name 属性用于引用 javascript 中的元素,或在提交表单后引用表单数据。只有具有name 属性的表单元素才会在提交表单时传递其值。 它适用于小于 maxDate 的日期。 ng-model 自动绑定它。 为什么不使用属性绑定?而不是放入 mustash 语法? 【参考方案1】:

您创建的日期无效

new Date(moment.utc().format( 'yyyy-MM-dd'));

试试

vm.minDate = new Date();
vm.maxDate = new Date();
vm.endBy = new Date();

【讨论】:

dateFormat 是 'yyyy-MM-dd' 。但即使我使用 new Date(); 也存在这个问题;还有 new Date(moment.utc().format(dateFormat));日期似乎有效。

以上是关于<input type="date" max="max"> 不设置最大日期角度 js的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jQuery 从 HTML <input type="date"> 中提取值

bootstrap 表单 <input type="date">为啥没有出现日历

<input type="date" max="max"> 不设置最大日期角度 js

为啥 `input type="date"` 的行为发生了变化?

javascript怎么操作type=date的input,使得input显示的内容是我设定的时间。

在浏览器支持不可用的情况下,为 input type="date" 添加 javascript 回退