首页 > 解决方案 > 从 Python Flask WTForms 字段触发 javascript

问题描述

我的网站中有一个 Flask 表单(通过 WTForms),我尝试根据用户是否选择或取消选择复选框来启用或禁用表单中的其他字段(并且无需刷新页面即可执行此操作) ,我尝试通过在 HTML 中使用 onchange 或 onclick 事件来实现这一点并没有奏效。我的字段定义如下(标签和字段)

<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>

我已经尝试过onclickonchange。并得到以下错误:

jinja2.exceptions.TemplateSyntaxError:预期的令牌',',得到'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>

标签: javascriptflask-wtforms

解决方案


这是大括号内的一个函数,您将传递以逗号分隔的参数(这就是错误对您说的):

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

您是否尝试过插入逗号分隔符?

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

推荐阅读