1

目前正在尝试使用flask和wtforms来制作一个html表单。我的 for 模板如下所示:

<ul><li>Description:</li>
<li> <textarea class="input" rows="10" cols="50" name="description" onKeyDown="limitText(this.form.description,this.form.countdown,150);"

onKeyUp="limitText(this.form.description,this.form.countdown,150);"> 文章描述。您还有字符。

我想使用 wtforms 并替换:

<textarea..> with {{form.description}}.

但是那我该如何合并 onkeydown 事件呢?我需要它来计算已经在 textarea 中输入的字符数。

顺便提一句。我使用 wtforms 制作的表单如下所示:

class ItemForm(Form):
title       = TextField("Title")
subtitle    = TextAreaField("Sub Title")
Description = TextAreaField("Description")
offervalue  = FloatField("Offer Value")
imagefile_1 = FileField("Image File 1")
imagefile_2 = FileField("Image File 2")
imagefile_3 = FileField("Image File 3")

问题:即使在文本区域中发生的任何事情,我仍应如何将 JAVASCRIPT 包括在内?

感谢任何指针。

4

2 回答 2

0

您需要使用一些东西来选择文本区域并将键盘事件绑定到它。我建议像这样使用 jQuery:

$('textarea .input').keypress(function() {
  limitText(this.form.description,this.form.countdown,150);
});

keypress您可以在此处查看事件的文档:http: //api.jquery.com/keypress/ jQuery 也可以绑定到keyupkeydown事件。

如果您不熟悉 jQuery,这是一个很好的起点:http ://docs.jquery.com/How_jQuery_Works

于 2012-09-24T21:12:31.863 回答
0

看起来我有点晚了,但我的个人收据是:

  1. 将您的脚本保存在单独的文件中,即myscripts.js
  2. 通过附加myscripts.js到所需的 HTML 页面<script url="<path/to/myscripts.js>"></scripts>
  3. 假设您在目标 HTML 页面中有函数foo(eventObject),myscripts.js和元素。bar
  4. 放入myscripts.jsfunction linker(),这将粘合这些组件(我使用 jQuery 作为示例,但也可以使用纯 JavaScript 进行填充):

    函数链接器(){$(bar).on(事件,函数blablabla(eventObject){foo(eventObject);})}

  5. linker()从您的 HTML 页面调用。

于 2014-12-29T18:58:58.130 回答