iPad'de çalışması amaçlanan Web uygulamasındaki HTML5 giriş denetimlerini bağlamak için Knockout JS kitaplığını kullanıyorum (iOS5, Safari 5.1). Bağlama, metin gibi giriş türleri için iyi çalışır, ancak tarih için değil, seçer. Tarih seçiciden bir tarih değeri seçtikten sonra, değer viewModel özelliğine bağlı değildir (aslında kaydedilmiyor).Knockout JS: Etkinliği iPad'de HTML5 tarihi için tetiklemiyor
Bu, HTML'm nasıl görünüyor.
<input id="dob" name="dob" type="date" data-bind="value: dob" />
Bir değişiklik olay işleyicisini başlattığım özel bir ciltleme ile çalışmayı denedim. hatta o olay ateş değil, Garip
<input id="dob" name="dob" type="date" data-bind="datePicker: dob" />
-
ko.bindingHandlers.datePicker = {
init: function (element, valueAccessor) {
ko.utils.registerEventHandler(element, "change", function() {
var observable = valueAccessor();
observable($(element).val());
});
},
update: function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
$(element).val(value);
}
};
HTML kodunun değiştirilmesi. Her iki senaryoda da bağlamanın Windows XP'de Opera ve Safari tarayıcılarında mükemmel şekilde gerçekleştiğini lütfen unutmayın.
Nihayetinde, özel bağlamadaki 'değişiklik' yerine 'bulanıklaştırma' olayını kullanarak sorunumu çözdüm. Şimdi olay işleyici aranıyor ve değeri tarih kontrolünden el ile ayarlıyorum.
Şimdi benim sorum şu ki, doğru bir şekilde yapmadığım bir şey değil mi? O zaman neden HTML5 tarih denetiminin değişiklik olayı, varsayılan olarak mı yoksa özel ciltleme yoluyla mı ateş etmiyor? Tarih kontrolünün olması gerektiği gibi çalışmasını istiyorum.
Teşekkürler @RP! Bu bir çekicilik gibi çalıştı. Müşteri tarafından bulanıklık olayının bağlayıcısından yaptığım şey, valueUpdate tarafından yapıldı. İyi öğrenme. –
Bu da Blackberry mobil için mükemmel çalıştı. Teşekkürler. – johnwards