在wtform中使用onKeyDown事件

时间:2012-09-23 11:56:23

标签: python flask

目前正在尝试使用flask和wtforms来制作html表单。 我的模板看起来像这样:

<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);” &GT;     文章的描述。你还剩下人物。   

我想使用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")

问题:如果我在TEXTAREA中发生任何事情,我应该如何继续使用JAVASCRIPT?

感谢任何指针。

2 个答案:

答案 0 :(得分:0)

您需要使用某些东西来选择textarea并将键盘事件绑定到它。我建议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

答案 1 :(得分:0)

看起来我有点迟了,但我的个人信息是:

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

    function linker(){   $(bar).on( event ,function blablabla(eventObject){foo(eventObject);}) }

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