WTForms-Javascript:将 onclick 传递给 WTF 字段

WTForms-Javascript: pass onclick to WTF field

有没有办法将 "onclick" 传递到 WTForm 字段?我想 enable/disable 一个字段,具体取决于是否选中了 WTF 复选框。但是 WTForms 中的 HTML 没有创建或没有 "onclick" 参数。

我有一个表格:

class test(Form):
    checkbox=BooleanField('Checkbox')
    required=TextField('Required if checked')

我有 JS:

function disablefld(){
  cb=document.getElementById('checkbox').checked;
  document.getElementById('required').disabled=!cb;
  }

为复选框生成的 HTML WTForms 是: <input id="checkbox" name="checkbox" type="checkbox" value="y">。它不起作用,因为 onclick 不存在。

我试过 checkbox=BooleanField('Checkbox', onclick="disablefld()") 但这是一个意想不到的论点。这是可能的还是我应该只用纯 html?

制作表格

您需要在呈现表单时传递额外的参数。

{% block content %}
{{ form.checkbox(onchange="doStuff()") }}
{{ form.required() }}
<script>
function doStuff(){
  var checked = document.getElementById('checkbox').checked
  if (checked){
    document.getElementById('required').disabled = true
  } else {
    document.getElementById('required').disabled = false
  }
}
doStuff()
</script>

{% endblock %}