7

私の英語レベルが低いため、私の謝罪を受け入れてください

私は jQuery でページをロードするために使用し、そのページで nicEdit を使用し、jQuery で別のページにデータを投稿します。ただし、ユーザーがエディターで書いたものの代わりに空の値を送信するだけです (テキスト領域のデフォルト値を定義すると、ユーザーが書いたテキストではなくデフォルト値を送信するだけです)。何が問題で、解決策は何ですか?

ありがとう。


更新この関連記事と最後にコメントを読み、他の記事を読んだ後、フォームを送信する前にこの方法を使用する必要があることがわかりました:

nicEditors.findEditor('textarea_id').saveContent();

このために、jquery を使用して任意のテキストエリアを選択し、.each()jquery 関数を呼び出します。例えば ​​:

$('textarea').each(function(){
   var IDOfThisTextArea =   $(this).attr('id');
   nicEditors.findEditor(IDOfThisTextArea).saveContent()
});

これは、事前に作成したテキストエリアに対してはうまく機能します。findEditor()しかし、上記の関数がそれらを見つけられず、それらを呼び出さないjQueryを介して動的に作成されたいくつかのテキストエリアがありsaveContent()ます。

この問題に対して、あなたが提供するもの??????

tnx

4

2 に答える 2

3

フォームを送信する前に、このようなすべてのインスタンスを保存するのはどうですか

$('input[type=submit]').bind('click', function () {
    for(var i=0;i<nicEditors.nicInstances.length;i++){
        nicEditors.nicInstances[i].saveContent();
    }
});
于 2011-07-28T20:07:55.057 に答える
1

動的に作成された要素の基本的な答えは、$('selector').on('click', function(...))or whathaveyou のようなものを使用して、トリガー アクションに動的にバインドし、そのfunction本体に.nice-wrapper textarea(適切なセレクターを介して) 関連する s を jquery オブジェクトとして見つけさせ$textareas、submit を実行する前に行うことです。

 $textareas.each(function(){ 
  nicEditors.findEditor(this.id).saveContent();
 });

これにより、 のようないくつかの便利なメソッドを使用できるようになり.serializeArrayます。明らかに、この問題を解決するにはさまざまな方法があります。たとえば、ボタンをクリックするのではなく、フォームの送信イベントにバインドしたいなどです。同じ一般的なカテゴリに。

于 2012-01-26T17:49:58.890 に答える