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 イベントを組み込むことができますか? テキストエリアに既に入力されている文字数をカウントするには、それが必要です。

ところで。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

少し遅れているようですが、私の個人的なレシピは次のとおりです。

  1. スクリプトを別のファイルに保存します。つまり、myscripts.js
  2. myscripts.js経由で必要な HTML ページに添付<script url="<path/to/myscripts.js>"></scripts>
  3. に関数foo(eventObject)があり、ターゲット HTML ページにmyscripts.js要素があるとします。bar
  4. myscripts.jsfunctionに入れるlinker()と、これらのコンポーネントが接着されます (例として jQuery を使用しますが、プレーンな JavaScript も自由に使用できます):

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

  5. linker()HTML ページから呼び出します。

于 2014-12-29T18:58:58.130 に答える
0

何かを使用してテキストエリアを選択し、キーボード イベントをバインドする必要があります。次のような jQuery をお勧めします。

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

keypressイベントのドキュメントは、 http: //api.jquery.com/keypress/keyupで参照できます。jQuery は、またはkeydownイベントにバインドすることもできます。

jQuery に慣れていない場合は、http: //docs.jquery.com/How_jQuery_Worksから始めることをお勧めします。

于 2012-09-24T21:12:31.863 に答える