2017-02-23 44 views
0

我试图实现一个日期选择器来更新某个时间点某些信息的图形。使用jQuery的试图onblur onchange和onkeyup,但这些事件似乎都没有发射在移动铬或iOS Safari。HTML 5 DatePicker事件没有在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的模板,并与页面重新加载传递新的信息。

+0

请通过http://www.html5tutorial.info/html5-date.php –

+0

这并不告诉我为什么我有一个问题。 –

+0

但他们告诉在哪些浏览器支持。所以,你需要使用插件datepicker –

回答

0

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

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; 
}; 

Remeber会打印出您选择的日期,休息您需要随时更改代码。

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

更新版本:: 请试试这个

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; 
    }); 
}); 
+0

嘿谢谢你的回复,但是没有任何事情发生在我尝试使用您的代码时,在移动iOS Safari或移动Chrome上。 –

+0

在移动铬/ safari Datepicker显示? –

+0

是的日期选择器正在显示,但事件侦听器不会触发一次我选择了一个日期并完成命中。 –