【问题标题】:Django Form Javascript read Boolean fieldDjango Form Javascript 读取布尔字段
【发布时间】:2021-08-11 22:21:18
【问题描述】:

在我的 models.py 中有

urgency = models.BooleanField(blank=True, default=False, verbose_name="Hitno otklanjanje")

我希望运行一个 javascript 函数来根据该布尔字段上的“真”或“假”来更改文本字段。问题是,我无法获得价值。当我使用document.getElementById('id_urgency').value; 时,无论点击框检查如何,我总是“开启”。这是为什么?我想我读错了价值?还是?

    <script type="text/javascript">
         function makeReadOnly()
             {
              var a = document.getElementById('id_urgency').value;
              console.log(a);

              if (document.getElementById('id_urgency').value == 'True'){
                  document.getElementById('id_date_days').readOnly = true;
             }else if (document.getElementById('id_urgency').value == 'False'){
                  document.getElementById('id_date_days').readOnly = false;
              }
             }
         document.getElementById('id_urgency').addEventListener('change', makeReadOnly);

这是 django 表单的一部分。如果我去那个页面上的“检查”,那个复选框甚至没有价值,这是为什么呢?

input type="checkbox" name="urgency" class="checkboxinput form-check-input" id="id_urgency"

【问题讨论】:

    标签: javascript django forms


    【解决方案1】:

    通过使用.value,您可以获得附加到该复选框的值,而不是复选框是否被选中。

    你可以检查一个复选框是否被选中:

    var a = document.getElementById('id_urgency')<b>.checked</b>;

    或由javascripttutorial.net指定:

    要检查是否选中了接受复选框,请使用以下命令 代码:

    const cb = document.getElementById('accept');
    console.log(cb.checked);
    

    (…)

    如果你得到一个复选框的值属性,你总是得到'on'字符串不管复选框是否被选中。例如:

    const cb = document.getElementById('accept');
    console.log(cb.value); // on
    

    【讨论】:

      猜你喜欢
      • 2014-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-20
      • 2012-09-30
      • 2019-09-03
      • 1970-01-01
      • 2012-11-24
      相关资源
      最近更新 更多