如何在没有 jquery 的情况下在 Angular 中的页面加载时自动打开 HTML 日历

Posted

技术标签:

【中文标题】如何在没有 jquery 的情况下在 Angular 中的页面加载时自动打开 HTML 日历【英文标题】:How to open HTML calendar automatically on page load in Angular without jquery 【发布时间】:2021-12-09 03:05:58 【问题描述】:

我在 Angular 应用程序中使用了带有日期字段的 html 输入。我想在不使用 jquery 的情况下根据条件在页面加载时打开日期字段模式。 条件是当输入选择了日期时,不应打开日历,如果未选择日期,则应打开下拉菜单。

我尝试在 HTML 标记中设置 onLoad,但我不确定如何关闭/打开日历模式。

<input
  [class.is-invalid]="deliveryDate.invalid && deliveryDate.touched"
  type="date"
  class="form-control"
  [ngClass]="'alerts-border': isDateSelected()"
  [min]="cartItems.minDeliveryDate"
  formControlName="delivery_date"
  onkeydown="return false"
/>

【问题讨论】:

***.com/questions/24975667/… 这是你要找的那个吗? @sojin webshim 不再维护了,对吧? 【参考方案1】:

如this answer 中所述,datepicker 元素是一种单独的窗口,您似乎无法直接调用它。

所以答案是:不,你不能打开日期选择器。如果您安装了 angular material,那么您可以尝试他们的 datepciekr。

【讨论】:

【参考方案2】:

我不知道这是否正是你想要的,但你可以试试这个:

<input
  [class.is-invalid]="deliveryDate.invalid && deliveryDate.touched"
  type="date"
  class="form-control"
  [ngClass]="'alerts-border': isDateSelected()"
  [min]="cartItems.minDeliveryDate"
  formControlName="delivery_date"
  [disabled]="form.value.delivery_date != null ? true : false"
  onkeydown="return false"
/>

注意:您没有说出表单的名称,我已将 form 作为名称([disabled]="form >.值...)。 如果您的表单有另一个名称 chage "form"。

当您初始化 delivery_date 字段时,如果您希望用户可以选择日期(或使用类似“2021-11-23”的字符串,则应将其初始化为 null " 如果您想显示日期但不让用户选择另一个日期)。

EXTRA:当你得到“想法”时,如果它是你想要的,你必须知道你甚至可以处理输入的disability formControlName="delivery_date" 以编程方式(在您的 .ts 代码中),如下所示:

// To disable
this.form.get('delivery_dat').disable();
// to enable
this.form.get('delivery_dat').enable();

// so you can do things like:
if (this.form.get('delivery_dat') != null) 
   this.form.get('delivery_dat').disable();
 else 
   this.form.get('delivery_dat').enable();


【讨论】:

以上是关于如何在没有 jquery 的情况下在 Angular 中的页面加载时自动打开 HTML 日历的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 jQuery 的情况下在 JavaScript 中打开 JSON 文件?

如何在没有 jquery 的情况下在 Angular 中的页面加载时自动打开 HTML 日历

如何在没有 Jquery-ui 且没有 Bootstrap 的情况下在 angularjs 中创建自定义进度条?

如何在没有键的情况下在jquery中绑定json数据

有没有办法在不使用 jQuery UI 和 jQuery Mobile 的情况下在 jQuery 中左右滑动 [重复]

html 在没有jquery的情况下在javascript中处理事件的方法。