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

时间:2018-06-07 18:05:18

标签: javascript html forms flask wtforms

有没有办法通过" onclick"进入WTForm领域?我想根据是否选中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制作表单?

1 个答案:

答案 0 :(得分:2)

渲染表单时需要传递额外的参数。

{% 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 %}