【发布时间】:2014-05-01 11:42:28
【问题描述】:
我使用敲除作为 mvvm 它工作正常,但我不想将包含空格的数据发送到服务器端代码。这是我的示例代码
//Regular Customer
self.nameForRegularCustomer = ko.observable("").extend({
required: { message: 'Promotion Name is required' },
maxlength: {
message: 'Promotion Name can not exceed 100 character',
params: '100'
}
});
self.statusForRegularCustomer = 1; //For create Mode always 1 as new
self.keywordForRegularCustomer = ko.observable("").extend({
required: { message: 'Keyword is required' },
maxlength: {
message: 'Keyword can not exceed 100 character',
params: '100'
}
});
self.promotionMsgForRegularCustomer = ko.observable("").extend({
required: { message: 'Promotion Message is required' }
});
self.promotionDescForRegularCustomer = ko.observable("").extend({
required: { message: 'Promotion Description is required' }
, maxlength: {
message: 'Description can not exceed 100 character',
params: '2000'
}
});
//The Object which stored data entered in the observables
self.RegularCustomerPromotion = {
name: self.nameForRegularCustomer,
description: self.promotionDescForRegularCustomer,
keywords: self.keywordForRegularCustomer,
happyMessage: self.promotionMsgForRegularCustomer,
status: self.statusForRegularCustomer,
promotionCustomerType: self.promotionCustomerType
};
我正在使用以下数据格式进行 ajax 调用
requestPromo = ko.toJSON(self.NewCustomerPromotion);
但这包含带有空格的数据,我也想在调用 API 之前对其进行修剪
我尝试用于字段级别
ko.subscribable.fn.trimmed = function () {
return ko.computed({
read: function () {
return this().trim();
},
write: function (value) {
this(value.trim());
// this.valueHasMutated();
},
owner: this
});
但这会丢弃验证
【问题讨论】:
标签: knockout.js knockout-mapping-plugin knockout-validation