如何从 kendo maskedtextbox mvvm 值绑定中删除提示字符
how to remove prompt character from kendo maskedtextbox mvvm value binding
我正在使用 Kendo UI 屏蔽文本框和 MVVM 值绑定。
viewmodel phonenumber 不包含任何提示字符,如“()-”,它只包含数字。
var viewModel = kendo.observable({
phoneNumber: "1234567890",
onChange: function () {
alert("event :: change " + this.get("phoneNumber"));
}
});
kendo.bind($("#example"), viewModel);
当您更改表单中的值并检查 viewModel phoneNumber 时(请参阅 onchange 函数)。 phoneNumber 现在包含 special/prompt 个字符,例如phoneNumber: "(444) 555-5555"
这是我的问题,我希望 MaskedTextbox 的值 return 只有数字 phoneNumber: "4445555555"
而不是特殊字符。
进行了更多研究,发现 answer
在使用 MVVM 时取消屏蔽数据绑定到可观察对象的值的解决方法。单个 maskedtextbox 更改事件处理程序可以去除任何值绑定的格式:
<ul data-role="listview">
<li>
<label>
Home Phone:
<input type="text" data-role="maskedtextbox" data-bind="value: homePhone, events: { change: maskStrip }" data-mask="(000) 000-0000" />
</label>
</li>
<li>
<label>
Cell Phone:
<input type="text" data-role="maskedtextbox" data-bind="value: cellPhone, events: { change: maskStrip }" data-mask="(000) 000-0000"/>
</label>
</li>
</ul>
var vm = kendo.observable({
homePhone: null,
cellPhone: null,
maskStrip: function (e) {
var that = e.sender,
stripped = that._unmask(that.value()),
obs = e.data,
val = that.element.data("bind");
if (val) {
val = val.substring(val.indexOf('value: ') + 7); //remove properties before
if (val.indexOf(',') > -1) val = val.substring(0, val.indexOf(',')); //remove properties after
obs.set(val, stripped);
}
}
});
我正在使用 Kendo UI 屏蔽文本框和 MVVM 值绑定。
viewmodel phonenumber 不包含任何提示字符,如“()-”,它只包含数字。
var viewModel = kendo.observable({
phoneNumber: "1234567890",
onChange: function () {
alert("event :: change " + this.get("phoneNumber"));
}
});
kendo.bind($("#example"), viewModel);
当您更改表单中的值并检查 viewModel phoneNumber 时(请参阅 onchange 函数)。 phoneNumber 现在包含 special/prompt 个字符,例如phoneNumber: "(444) 555-5555"
这是我的问题,我希望 MaskedTextbox 的值 return 只有数字 phoneNumber: "4445555555"
而不是特殊字符。
进行了更多研究,发现 answer
在使用 MVVM 时取消屏蔽数据绑定到可观察对象的值的解决方法。单个 maskedtextbox 更改事件处理程序可以去除任何值绑定的格式:
<ul data-role="listview">
<li>
<label>
Home Phone:
<input type="text" data-role="maskedtextbox" data-bind="value: homePhone, events: { change: maskStrip }" data-mask="(000) 000-0000" />
</label>
</li>
<li>
<label>
Cell Phone:
<input type="text" data-role="maskedtextbox" data-bind="value: cellPhone, events: { change: maskStrip }" data-mask="(000) 000-0000"/>
</label>
</li>
</ul>
var vm = kendo.observable({
homePhone: null,
cellPhone: null,
maskStrip: function (e) {
var that = e.sender,
stripped = that._unmask(that.value()),
obs = e.data,
val = that.element.data("bind");
if (val) {
val = val.substring(val.indexOf('value: ') + 7); //remove properties before
if (val.indexOf(',') > -1) val = val.substring(0, val.indexOf(',')); //remove properties after
obs.set(val, stripped);
}
}
});