событие valueUpdate для изменения опции выбора

0

Я пытаюсь создать редактируемый блок со списком. Это HTML, который я написал:

<select data-bind='options: possibleOptions, value: selectedOption' onchange='this.nextElementSibling.value = this.value'></select>
<input type='text' name='format' data-bind='value: selectedOption, valueUpdate:[\"afterkeydown\", \"click\", \"input\", \"change\"]' />

с помощью http://jsfiddle.net/nwH8A/.

Итак, что происходит, так это то, что selectedOption корректно обновляется при вводе текста вручную. Но когда я выбираю опцию из выпадающего списка (possibleOptions), значение selectedOption не обновляется, если я не нажму на текстовое поле. В основном то, что я пытаюсь сделать, это позволить пользователю вводить текст вручную, а также выбирать из выпадающего списка и соответственно обновлять значение selectedOption.

Есть ли какое-либо событие, которое мне нужно добавить в список событий valueUpdate, или есть какой-то другой способ для достижения результата?

Я работаю в файле машинописных файлов.

Благодарю.

  • 0
    Попробуйте использовать привязку данных event вместо onchange триггера onchange . Определенно не связывайтесь с this.value .
  • 0
    Будет легче играть, если вы добавите KO к своей скрипке.
Теги:
data-binding
knockout.js

1 ответ

0

Я не уверен, понимаю ли я ваш вопрос... Попробуйте следующее:

 function ViewModel() {
    var self = this;
    self.possibleOptions = ko.observableArray([ { text: '1', value: '1' }, { text: '2', value: '2' } ]);
    self.selectedOption = ko.observable();

    self.selectedOption.subscribe(function (newValue) {
        self.possibleOptions.push({ text: newValue, value: newValue });
    });
};

ko.applyBindings(new ViewModel());

HTML

<select data-bind="options: possibleOptions, optionsText: 'text', optionsValue: 'value', value: selectedOption">

</select>

<input type="text" name="format" data-bind="value: selectedOption" />

Чтобы увидеть это, выполните следующие действия: https://jsfiddle.net/q6ov7r59/3/

  • 0
    То, что я хочу, похоже на эту ссылку . Я хочу изменить значение selectedOption, если произойдет любое из 2: 1) выбранная опция изменится 2) будет введен некоторый текст. В этой скрипке selectedOption не обновляется при вводе текста. Что я для этого делаю?
  • 0
    Взгляните на мой отредактированный ответ jsfiddle.net/q6ov7r59/3

Ещё вопросы

Сообщество Overcoder
Наверх
Меню