【发布时间】:2021-08-10 20:17:19
【问题描述】:
我正在尝试使用 jQuery 通过动态赋值来设置 type="time" 的 html 输入标签的值。
HTML 标记代码:
<input class="form-control" style="font-size: 1em;" type="time" name="time_start" id="time_start" value="" />
jQuery 赋值代码;
$('#time_start').val(dataIn.time_start);
// dataIn.time_start = "03:00:00 PM" (confirmed in console.log(dataIn))
我的表单中的所有其他字段都可以使用此功能,但出于某种原因,此特定字段根本不会使用。 “时间”类型的输入有什么特别之处吗?
【问题讨论】:
-
调试 JS 时始终检查控制台。您会看到一条警告,告诉您为什么这不起作用:
The specified value "03:00:00 PM" does not conform to the required format. The format is "HH:mm", "HH:mm:ss" or "HH:mm:ss.SSS" where HH is 00-23, mm is 00-59, ss is 00-59, and SSS is 000-999. -
我很困惑这不符合,因为该值最初是通过使用浏览器自己的内置时间选择器创建的,当您将输入设置为“时间”时使用。那么,如果浏览器(Chrome)是条目的来源,这怎么会不是预期值呢?
-
我不是在挑战您的观点,因为正如您所说,该警告肯定存在于调试控制台中。我只是不明白为什么浏览器会提供不可接受的价值。
-
这个问题是因为时间输入和日期输入使用客户端的语言环境,而不是单一的特定格式。作为开发人员,这很烦人,但对 UX 来说是有意义的。