Javascript 取消日期时间部分的自定义绑定
我是个新手。我有这样一个Viewmodel:Javascript 取消日期时间部分的自定义绑定,javascript,knockout.js,Javascript,Knockout.js,我是个新手。我有这样一个Viewmodel: var Booking = function(data) { var self = this; self.BookingID = ko.observable(data.BookingID); self.BookingCustomerOrderID = ko.observable(data.BookingCustomerOrderID); self.BookingName = ko.observable(data.Bo
var Booking = function(data) {
var self = this;
self.BookingID = ko.observable(data.BookingID);
self.BookingCustomerOrderID = ko.observable(data.BookingCustomerOrderID);
self.BookingName = ko.observable(data.BookingName);
self.BookingTreatmentGroupID = ko.observable(data.BookingTreatmentGroupID);
self.BookingStartTime = ko.observable(data.BookingStratTime);
self.BookingEndTime = ko.observable(data.BookingEndTime);
ko.bindingHandlers.hasFocus = {
init: function(element, valueAccessor) {
$(element).change(function() {
if(this.val() != valueAccessor())
{
this.val(valueAccessor());
}
});
},
update: function(element, valueAccessor) {
var value = valueAccessor();
var date = moment(value());
var strDate = date.format('HH:mm');
$(element).val(strDate);
}
};
在我的表单中,我想让用户更改开始时间和结束时间。我是否可以对从输入字段离开datepart的时间部分进行自定义绑定,并对模型进行更新
仅显示该值可以正常工作,但不会更新viewmodel
ko.bindingHandlers.timeVal = {
update: function (element, valueAccessor) {
var value = valueAccessor();
var date = moment(value());
var strDate = date.format('HH:mm');
$(element).val(strDate);
}
};
查看,您可以在init方法中的元素上注册一个事件处理程序,并使用它来更新您的可观察对象。大概是这样的:
var Booking = function(data) {
var self = this;
self.BookingID = ko.observable(data.BookingID);
self.BookingCustomerOrderID = ko.observable(data.BookingCustomerOrderID);
self.BookingName = ko.observable(data.BookingName);
self.BookingTreatmentGroupID = ko.observable(data.BookingTreatmentGroupID);
self.BookingStartTime = ko.observable(data.BookingStratTime);
self.BookingEndTime = ko.observable(data.BookingEndTime);
ko.bindingHandlers.hasFocus = {
init: function(element, valueAccessor) {
$(element).change(function() {
if(this.val() != valueAccessor())
{
this.val(valueAccessor());
}
});
},
update: function(element, valueAccessor) {
var value = valueAccessor();
var date = moment(value());
var strDate = date.format('HH:mm');
$(element).val(strDate);
}
};
你能帮我加一把小提琴吗?你能自己试试吗;而不是$(元素).val(标准日期);谢谢老板,但如果可能的话,我仍然希望在viewmodel中使用datepart。哈哈!我完全错过了那部分。很清楚,不是吗。谢谢你,保罗!