как удалить символ подсказки из привязки значения kendo maskedtextbox mvvm

Я использую маскированное текстовое поле Kendo UI и привязку значений MVVM.

Телефонный номер модели представления не содержит никаких подсказок, таких как «()-», он содержит просто цифры.

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

Когда вы меняете значение в форме и проверяете номер телефона viewModel (см. функцию onchange). Номер телефона теперь содержит специальные символы/подсказки, например. phoneNumber: "(444) 555-5555"

Это моя проблема, я ожидаю, что значение MaskedTextbox будет возвращать только числа phoneNumber: "4445555555" без специальных символов.

Полный фрагмент кода @JS Fiddle


person Nadeem Shaikh    schedule 02.04.2015    source источник


Ответы (1)


Провел еще несколько исследований и нашел ответ

Обходной путь для разоблачения значений, привязанных к наблюдаемым данным, при использовании 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); } } });

person Nadeem Shaikh    schedule 02.04.2015
comment
Пожалуйста, добавьте ответ в свой пост на случай, если URL-адрес умрет. Кроме того, примите свой собственный ответ. :) - person Nicholas; 04.04.2015