【问题标题】:Update input type="time" not working更新输入类型=“时间”不起作用
【发布时间】:2016-10-31 14:58:44
【问题描述】:

我正在尝试使用 onClick 将输入 type="time" 字段更新为 td 中列出的时间。我正在使用,

document.getElementById("modal-checkin").value = Check_In;

我在http://www.w3schools.com/jsref/prop_input_time_value.asp 上找到了一个示例,但它没有更新该字段。谁能告诉我我错过了什么/做错了什么?

这是我用来传递时间变量的相关代码。 我使用 php 从我的数据库中提取时间,然后我(尝试)使用 javascript 将用户选择的时间放入弹出模式中。

<?php
$In = $row['CheckIn']->format('g:i');
print '<td data-toggle="modal" data-target="#myModal"  onClick="TimeAdjustFunction(\'   '.$In.'   \')" >';
?>

<div class="modal-table-Bottom">
    <div>Check In</div><div><input type="time"  id="modal-checkin" /></div>
</div>

<script>
function TimeAdjustFunction(In){
var Check_In = In;
console.log(Check_In);
document.getElementById("modal-checkin").value = Check_In;
}
</script>

console.log 显示 8:45(*无论我什么时候点击)

【问题讨论】:

  • 你期待什么?它不会重新加载页面,因此不会再次执行 php 脚本。所以它总是相同的时间。您需要从 Php 获取时间吗?
  • 您正在模糊 PHP 可以做什么和 Javascript 可以做什么之间的界限。 PHP 仅在页面首次加载时运行。您可以根据需要请求时间,它始终是相同的值。您应该 A) 使用实时更新的 Javascript 获取时间,或 B) 向返回时间的 PHP 脚本发出 AJAX 请求。
  • 时间存储在数据库中,并通过页面上的php加载到列表中。有一个弹出模式,一开始是空白,但需要获取/填写用户点击的时间

标签: javascript input time


【解决方案1】:

发现我的问题。 input type=time 期望带有前导零的时间。我正在使用

->格式('g:i')

我将“g”更改为“h”,现在它可以工作了。

【讨论】:

    【解决方案2】:

    您需要添加秒数。

    var Check_In = In + ':00';
    

    【讨论】:

    • 这没有回答问题。你不需要第二个。
    猜你喜欢
    • 1970-01-01
    • 2019-11-11
    • 1970-01-01
    • 2021-03-11
    • 1970-01-01
    • 2015-08-01
    • 2016-02-05
    • 1970-01-01
    • 2011-10-19
    相关资源
    最近更新 更多