iOS

2012-03-16 20 views
16

'da değer değişimi olayları nasıl kaydedilir? Yerel iOS tarih/saat seçicisinden yararlanabilmek için bir HTML5 giriş tarihi bileşeni oluşturmaya çalışıyorum ve jquery kullanıyorum. Kod yerel uygulamalar bir webkit bileşenlerin içinde çalışaniOS

var $inputDate = $("<input></input>"); 
    $inputDate.attr("type", "date"); 
    $inputDate.attr("value", "2004-05-03"); 
    $inputDate.change(function(event) 
    { 
    console.log("value changed"); 
    }); 

: Ben bileşeni oluşturmak için aşağıdaki kodu var. Giriş kontrolü iyi görünüyor ve değeri seçiciyi kullanarak değiştirebilirim. Ancak, değeri değiştirdiğimde ve seçiciyi kapattığımda değişiklik işlevi tetiklenmez. Bunu Chrome'da bir web sayfasında çalıştırdığımda işler beklendiği gibi çalışır. IOS'ta bu işi nasıl yapabilirim?

+0

Değişiklik olayını tetiklemediğinden şikayet eden diğer kullanıcıları buldukları için aşağıdaki kit gibi bir şey kullanmaları önerildi: http://cubiq.org/spinning-wheel-on-webkit-for-iphone-ipod-touch –

+0

Öneri için teşekkürler, ancak bu kitin kullanılması, ürünümüzün gerektirdiği yerel desteği sağlamıyor. –

cevap

23

Tarih/saat seçicisi reddedildiğinde onblur işlevi çağrılır. Yani bu yaptığı işlerde: (Android'de ve Chrome) Chrome'un yeni sürümlerinde

var $inputDate = $("<input></input>"); 
$inputDate.attr("type", "date"); 
$inputDate.attr("value", "2004-05-03"); 
$inputDate.blur(function(event) 
{ 
    console.log("value changed"); 
}); 

:

  • tarih Onblur olay sırasında çağrılan değil
  • seçildiğinde Onchange olay çağrılır açılan kontrolü Burada klavye odağı

kaybeder düz JavaScript kullanarak oluşturulan olay örnek gösteren sadece bir kez, atlamamış: http://jsbin.com/iximuy/4

+0

İnsan Saçlarımı bunun üzerinde yırtıyordum, beni kurtardığın için teşekkürler! – kand