javascript - 如何将文本输入绑定(bind)到同一 html 页面上的另一个 div

标签 javascript html flask wtforms brython

我制作了一个标签列表,它接受用户输入并将其作为标签列表绑定(bind)到另一个输入字段。然而,在使用 Javascript 和 JQuery 数周后,我能够做到这一点的唯一方法(重要的是一种优雅的方法)就是使用 Brython。不幸的是,这似乎以某种方式禁用了 jinja2 模板,因此没有任何内容提交到数据库。所以,毕竟,我的问题是,这样一个看似简单的任务可以在 Flask 中本地完成吗?

这是 Brython 脚本工作原理的精髓 https://jsfiddle.net/5nt39deo/2/但问题所在的代码如下:

<form action="" id="homeForm" class="centered" role="form" method="post">
    {{ form1.hidden_tag() }}
    {{ form1.toppings(type="text",id="homeInput",autocomplete="off",list="topps",placeholder="Toppings...") }}
    <datalist id="topps">{% for top in topps %}<option value="{{ sym }}">{% endfor %}</datalist>
    <button action="" type="submit" id="homeAddTags" class="button">Add</button><br><br>
    {{ form1.tags(id="tagList") }}<br>
    {{ form1.agree(id="homeAgreement") }}
    {{ form1.agree.label() }}<br><br>
    <button type="reset" id="homeResetTags" class="button">Reset</button>
    {{ form1.sendtags(type="submit",class_="button",id="homeSubmit") }}<br><br>
</form>


<script type="text/python" id="script1">
    from browser import document, html, window, console, alert

    storage = []

    def addTag(e):
        item = document['homeInput'].value
        if item not in storage and item != '':
            storage.append(item)
            document['homeInput'].value = ''
            document['tagList'].textContent = storage
        else:
            alert('Tag already added.')
            document['homeInput'].value = ''

    def resetTags(e):
        storage = []
        document['homeInput'].value = ''
        document['tagList'].textContent = storage

    document['homeAddTags'].bind('click', addTag)
    document['homeResetTags'].bind('click', resetTags)
</script>

最佳答案

看看这个原生 javascript 解决方案

...
 <input type="text" id="text" placeholder="Enter something" oninput="outputUpdate();">
...
<script type="text/javascript" id="script2">

function outputUpdate(e){
let currentText=document.getElementById('text').value;

document.getElementById('output').innerHTML = currentText;

</script>

https://jsfiddle.net/kalovelo/z5ngxp31/

关于javascript - 如何将文本输入绑定(bind)到同一 html 页面上的另一个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62365705/

相关文章:

Javascript:没有在行动中摸索模数

html - 为什么 anchor 标记不适用于 :after or :before pseudo class?

python - header_frame 上的图像仅显示在 xhtml2pdf 生成的 pdf 的第一页中

python - 作用域 session 上的事件监听器

javascript - 如何访问从 Blob 创建的 ArrayBuffer 的索引?

javascript - 我如何(有效地)链接我的 promise ,返回一个有值(value)的数组而不是 promise ?

javascript - 什么是用于编辑自定义 DSL 代码的优秀 JavaScript 编辑器?

html - 一个很好的阅读 HTML/CSS 的指南,很好地涵盖了对齐

html - 如何在调整浏览器窗口大小时阻止 Div 移动

javascript - 未定义错误: list object has no element Undefined