javascript - 如何使用 JavaScript 更改 Flask 表单输出

标签 javascript python flask jinja2 flask-wtforms

我正在创建一个简单的 flask 应用程序,它根据添加到 flask 表单的数据生成输出。我想要实现的是编辑该输出并同时根据该更改更新其他值的可能性。应用程序正在计算工作时间,因此我需要允许编辑诸如开始工作等字段。然后这些变化需要反射(reflect)每天的总小时数。 这是输出页面:

enter image description here

在上面的示例中,我想将工作开始时间更改为 10:00,并期望总工时从 8 小时减少到 7 小时。 我希望你们明白我的意思,伙计们。

这是我使用的 div 表的示例:

<div class="rTableRow" align="center">
  <div class="rTableCell">{{ day['day'].strftime("%d") }}</div>
  <div class="rTableCell">{{ day['day'].strftime("%a") }}</div>
  <div class="rTableCell" contenteditable="true">{{ day['absence'] }}</div>
  <div class="rTableCell" contenteditable="true">{{ day['start-hour'] }}</div>
  <div class="rTableCell" contenteditable="true">{{ day['end-hour'] }}</div>
  <div class="rTableCell" contenteditable="true">{{ day['additional-break'] }}</div>
  <div class="rTableCell" contenteditable="true">{{ day['overtime'] }}</div>
  <div class="rTableCell" contenteditable="true">{{ day['daily-total'] if day['daily-total'] != 0 else '-' }}</div>

有没有办法用 JavaScript 来做到这一点?所有数据都在 View 级别进行处理并传递到模板。

非常感谢您的帮助。

最佳答案

TL;DR:链接到 jsFiddle:http://jsfiddle.net/bkjwgy10/36/

以下是如何通过 javascript 执行此操作的示例。我假设的一些假设是

  • 您验证了输入数据
  • 您成立了 jQuery 。您也可以通过 javascript 来完成此操作,但是您需要添加 eventListeners 。有关 jQuery 的文档可以找到 here .
  • 您有自己的 CSS 来创建表格 - jsFiddle 将显示自上而下的格式,因为我没有包含任何 CSS。

一些注意事项:

  • 您可以使用moment.js,而不是编写自己的工时计算。 -- 相关文档为 here .
  • 考虑使用另一个名为 value 的属性它包含 Flask 将使用的信息,但格式不适合向查看者显示。观众会看到不同的东西,但值(value)是相同的。
  • 我用过$().closest()而不是$().parent() 。两者产生相同的结果,但因为您指定了 class="rTableCell"class="rTableRow"而不是<tr><td> ,我认为这是合适的。
  • 您可以轻松添加更多列;我认为它已经修复并以这种方式编写了计算。

所以javascript ,您可以将其添加到document.ready中或DOMContentLoaded

$('.rTableCell').focusout(function(e) {
    /* insert validation here */

    // yield selected row
    var row = $(this).closest('.rTableRow');
    //alternative: console.log($(this).parent())

    // get children (cells in row)
    var rcells = $(this).closest('.rTableRow').children();

    // set HTML to this
    rcells.last().html(calculate_hours(rcells));
})

关于javascript - 如何使用 JavaScript 更改 Flask 表单输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52303432/

相关文章:

python - 使用 Flask 请求处理表单数据

javascript - 如何修复Python Flask中的 "Undefined is not JSON serializable"

javascript - Chart.js 中不同数量的标签和数据

Python:在 PIL 和/或 pygame 中操作 16 位 .tiff 图像:以某种方式转换为 8 位?

javascript - Python Flask 在不重新加载整个页面的情况下发送警报

python - 从 Pandas df 中删除行

python - 如何在 django 中从数据库检索时避免重复值

javascript - 如何在 Android 上的 Cordova Chrome 应用程序中播放字符串中的 Base64 编码的 mp3?

javascript - jQuery:定位一个div以用溢出填充容器div的可见部分

javascript - 根据数字范围更改 CSS 样式