1

Django 1.5 を実行しており、Dajax/Dajaxice を使用してフォームを非同期的に更新しています。フォームは、オブジェクト (テキスト フィールド) の単なる説明です。フィールドの値は常に表示され、編集可能なテキストエリアとして表示されます。フォームがレンダリングされると、javascript を使用して onchange イベントを html フォームに割り当てます。

$('#form_id').change(function(event) {
                Dajaxice.appname.description_form(Dajax.process,
                    {'form':$('#form').serialize(true),
                    'pk':$('#parent_div').attr('pk')}
                    )
            });

これは、空白の入力を除くすべての種類の入力で機能します。テキストエリアにテキストが含まれていない場合、イベントはトリガーされないようです。空白の入力でイベントをトリガーできるようにするにはどうすればよいですか?

onchange イベントだけではなく、keyup() などの他のイベントを割り当ててみましたが、同じ結果になりました (空白の入力を除いて完全に機能します)。

説明:

入力なし、つまり '' (文字なし)

' ' の入力はまだトリガーします。

4

2 に答える 2

1

少し前にこれに遭遇したことを覚えていますが、任意の変更で解決しました。

最も単純な形式では、jQuery の .change() 関数は null 入力に対して起動する必要があります。この単純な例を参照してください。入力にテキストを入力し、それをクリアして、もう一度タブを押します: simple .change() demo

$('#search').change(function(event){alert('Changed!');});

コードにさらにコンテキストを提供できれば、.change() が失敗する原因を突き止めることができるかもしれません。

于 2015-05-01T19:01:21.973 に答える
0

私の知る限り、「入力」は使用したいイベントではありません。「入力」は「変更」に似ているため、文字列が 0 文字に近づくと悪い結果が生じる傾向があるため、代わりに keyup を使用し
てください。

$('#form_id').bind('keyup', function (e) {    
     Dajaxice.appname.description_form(Dajax.process,
        {'form':$('#form').serialize(true),
           'pk':$('#parent_div').attr('pk')}
     )
});
于 2013-07-02T20:30:27.120 に答える