Как я могу динамически отключить текстовое поле, используя наблюдаемые Knockout?
Я использую форму регистрации, и когда я нажимаю кнопку "Отправить", я хочу отключить текстовое поле с помощью Knockout.
Я пробовал следующее:
var viewModel = {
Textboxcontrol: ko.observable(true), // by default textbox is enable to edit
Register: {
Init: function () {
Textboxcontrol= false; // Updating the value to false
// so Textbox should be disabled.
}
};
ko.applyBindings(viewModel);
На UI я написал следующее
<input data-bind="value: Name, enable: Textboxcontrol"
type="text" autocomplete="off" />
Но проблема в том, если я изменю значение на Textboxcontrol= false;
также его значение как True
только.. и текстовые поля не отключаются.
1 ответ
Решение
Поскольку Textboxcontrol является наблюдаемым, вы должны изменить его значение, вызвав его как функцию. Кроме того, вы должны использовать this
чтобы получить доступ к свойству Textboxcontrol внутри функции "Init":
var viewModel = {
Name: ko.observable(''),
Textboxcontrol: ko.observable(true),
Register: {
Init: function () {
this.Textboxcontrol(false);
}
}
};
ko.applyBindings(viewModel);