2

我正在使用Kendo UI Masked Textbox和MVVM值綁定。如何從kendo中刪除提示字符maskedtextbox mvvm value binding

viewmodel phonenumber不包含任何提示字符,如「() - 」它只包含數字。

var viewModel = kendo.observable({ phoneNumber: "1234567890", onChange: function() { alert("event :: change " + this.get("phoneNumber")); } }); kendo.bind($("#example"), viewModel);

當你改變形式的價值和檢查視圖模型phoneNumber的(見平變化的功能)。 phoneNumber現在包含特殊/提示字符,例如phoneNumber: "(444) 555-5555"

這是我的問題,我期望MaskedTextbox的值只返回不帶特殊字符的數字phoneNumber: "4445555555"

Full Code Snippet @JS Fiddle

回答

0

做了一些更多的研究,發現answer

解決方法對於使用MVVM時,數據綁定到一個可觀察揭露值。單MaskedTextBox中change事件處理可以去除格式化任何值綁定: <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); } } });

+0

請回答添加到您的文章,如果該URL死亡。另外,接受你自己的答案。 :) – Nicholas 2015-04-04 05:16:30