【问题标题】:HTML 5 DatePicker events not firing on iOS safariHTML 5 DatePicker 事件未在 iOS Safari 上触发
【发布时间】:2017-02-23 11:28:50
【问题描述】:

我正在尝试实现一个日期选择器来使用某个时间点的一些信息更新图表。使用 jquery,我尝试了 onblur onchange 和 onkeyup,但这些事件似乎都没有在 Mobile chrome 或 iOS safari 上触发。

然后我尝试 onblur= 也没有成功。

谁能看到我在这里做错了什么?

  <div class="col-50 graph-date-select-container">
    <input id="graph-date-input" type="date" class="graph-date-select" style="-webkit-appearance: textfield; -moz-appearance: textfield; height: 20px; margin-top: -15px;" onblur="graphUpdate()"/>
  </div>


function graphUpdate() {
  alert("graphUpdate called.")
  var date = new Date($(this).val());

  var dateString = "" + date.getDay() + "/" + date.getMonth() + "/" + date.getFullYear();

  var url = "{% add_params request.get_full_path period='daily'%}" + "query_param=" + dateString
  window.location.href = url
};

基本上所有需要发生的是,当输入中的值发生更改(用户隐藏日期输入弹出窗口)时,dat 作为参数传递给 django 模板,页面重新加载新信息。

【问题讨论】:

  • 这并没有告诉我为什么我有问题。
  • 但是他们告诉他们支持哪些浏览器。所以,你需要使用插件 datepicker
  • 我已经检查了 caniusethis,它在我需要它工作的网络浏览器上受支持,但由于某些奇怪的原因,事件没有触发

标签: javascript jquery html ios django


【解决方案1】:

你应该按照我的代码,它会工作::

HTML

<div class="col-50 graph-date-select-container">
    <input id="graph-date-input" type="date" class="graph-date-select" style="-webkit-appearance: textfield; -moz-appearance: textfield; height: 20px;" onchange="graphUpdate(this.value)"/>
</div>

JS

function graphUpdate(value) {
    var date = new Date(value);
    console.log(date);
    var dateString = "" + date.getDay() + "/" + date.getMonth() + "/" + date.getFullYear();

    var url = "{% add_params request.get_full_path period='daily'%}" + "query_param=" + dateString;
    window.location.href = url;
};

请记住,这将打印您选择的日期,其余代码您需要根据需要更改。

================================================ ============================

更新版本:: 请试试这个

HTML

<div class="col-50 graph-date-select-container">
    <input id="graph-date-input" type="date" class="graph-date-select" style="-webkit-appearance: textfield; -moz-appearance: textfield; height: 20px;"/>
</div>
<div id="testingDiv"></div>

JS

$(document).ready(function () {
    $(document).on('change', '.graph-date-select', function () {
        var date = new Date($(this).val());
        $('#testingDiv').html(date);
        alert(date); //first check date is alerting or not
        return false;
        var dateString = "" + date.getDay() + "/" + date.getMonth() + "/" + date.getFullYear();

        var url = "{% add_params request.get_full_path period='daily'%}" + "query_param=" + dateString;
        window.location.href = url;
    });
});

【讨论】:

  • 您好,感谢您的回复,但是当我尝试使用您的代码时,移动 iOS Safari 或移动 Chrome 上没有任何反应。
  • 是的,日期选择器正在显示,但是一旦我选择了一个日期并点击完成,事件监听器就不会触发。
  • 您使用的是哪个版本的 jQuery 库?
  • 我使用 v2.1.4 jquery
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-27
  • 1970-01-01
  • 2021-04-28
  • 2020-11-11
  • 2020-08-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多