Включить кнопку отправки, как только поле станет действительным - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть следующая модель (с некоторыми несущественными вещами):

import * as ko from "knockout";

export class RecipientsModel {
    private surveyId: string;
    editBulkAccounts = ko.observable([]);
    firstName = ko.observable("");
    debugData = ko.observable("");
    constructor() {};

    public addRecipients() {}
}

И этот шаблон:

<script type="text/html" id="recipients">
  <!-- ko with: recipient -->
  <form data-bind="submit: addRecipients">
    <div class="form-item form-type-textarea form-item-bulk-accounts">
      <label class="control-label" for="edit-bulk-accounts">Email addresses or mobile number<span class="form-required" title="This field is required.">*</span></label>
      <div class="form-textarea-wrapper resizable textarea-processed resizable-textarea">
        <textarea data-bind="value: editBulkAccounts" class="form-control form-textarea required" id="edit-bulk-accounts" name="bulk_accounts" cols="60" rows="5"></textarea></div>
    </div>
    <input type="submit" id="edit-submit--7" name="op" value="Mark participation" class="form-submit btn btn-fill btn-wd" data-bind="enable: editBulkAccounts().length">
  </form>
  <div data-bind="text: debugData">Test</div>
  <!-- /ko -->
</script>

Когда я впервые загружаю страницу, моя кнопка отправкиотключено, как и ожидалось.Когда я ввожу текст в текстовую область, я хочу отправить кнопку, чтобы сразу включить - даже один символ в порядке.Происходит следующее: отправка не включается до тех пор, пока текстовая область не потеряет фокус, т. Е. Переместится на вкладку или щелкнет в другом месте страницы.

Можно ли использовать knockoutjs для привязки данных, чтобы активировать кнопку отправки, как толькоУ textarea есть какой-нибудь контент?Если да, то как?

1 Ответ

0 голосов
/ 07 февраля 2019

Попробуйте использовать привязку textInput вместо значения в текстовом поле - оно должно обновиться немедленно

...