Инициирование javascript из поля Python Flask WTForms - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть форма Flask (через WTForms) на моем веб-сайте, и я пытаюсь включить или отключить другие поля в моей форме в зависимости от того, выбрал ли пользователь флажок или снял его (и делать это без необходимости refre sh на странице), однако мои попытки достичь этого с помощью события onchange или onclick в HTML не сработали. Мое поле определено ниже (метка и поле)

<div class="form-group row">
  {{ form.task_submit_sms.label(class_="col-sm-3 text-right control-label col-form-label") }}
  <div class="col-sm-1">
      {{ form.task_submit_sms(class_="custom-control custom-checkbox" onclick="enableSMSFields()") }}
  </div>

Я пробовал оба onclick и onchange . и получите следующую ошибку:

jinja2.exceptions.TemplateSyntaxError: ожидаемый токен ',', got 'onclick'

Не уверен, что это актуально, но вот мой JavaScript:

<script>
  // Lock SMS fields unless required
  function enableSMSFields()
  {
    if (document.getElementById('task_submit_sms').checked == true)
    {
      document.getElementById('task_sms_text').removeAttribute('disabled');
    }
    else
    {
      document.getElementById('task_sms_text').setAttribute('disabled','disabled')
    }
  }
</script>

1 Ответ

1 голос
/ 10 февраля 2020

Это функция внутри фигурных скобок, в которую вы передаете аргументы, разделенные запятыми (это то, что говорит вам ошибка):

{{ form.task_submit_sms(class_="custom-control custom-checkbox" onclick="enableSMSFields()") }}

Вы пытались вставить разделитель запятых?

{{ form.task_submit_sms(class_="custom-control custom-checkbox", onclick="enableSMSFields()") }}
...