代码之家  ›  专栏  ›  技术社区  ›  machump

wtforms javascript:pass onclick to wtf字段

  •  1
  • machump  · 技术社区  · 7 年前

    有没有方法将“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 回复  |  直到 7 年前
        1
  •  2
  •   Joost    7 年前

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

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