2010-11-23 5 views
2

私はテキストエリアを持つダイアログを使用しています。 OKボタンをクリックすると、テキストエリアの値がajax経由でサーバーに送られます。
ユーザがテキストエリアに最初に書き込むとき、値は正しく読み込まれますが、その後のすべてのアクションで、送信される値は、同じ文字列を何度も繰り返し入力した場合と同じです。jqueryダイアログテキストエリアの値を一度だけ読み取る

function message(url) { 
    var mydiv; 
    mydiv = $(document.createElement('div')); 
    mydiv.html("enter message: <textarea name='message' id='message'/>"); 
    mydiv.dialog(setProps(url)); 
    mydiv.dialog('open'); 
} 

function setProps(url) { 
    return { 
    buttons: { 
     "ok": function() { 
     $.get('/act?url=' + url + '&message=' + $("#message").val().trim(), 
      function(data) { 
      $("#content").load('/react?url=' + url); 
      } 
     ); 
     $(this).dialog("close"); 
     $(this).dialog("destroy"); 
     // If I use the following all subseq. actions are empty: 
     // $("#message").val(''); 
     } 
    } 
    } 
} 
+0

私は、id = 'message'の要素を複数回追加しようとしていると思われます(IDは一意である必要があるため)。それをclass = 'message'に置き換えると、あなたの問題を解決するかもしれません。 –

+0

@conqenator - '.val()'は* first *要素の値を引き続き取得します。 –

+0

@Nick:hmmm .last()。val()を使って解決するでしょうか?しかし、私はそれが最良の方法ではないと思います。 –

答えて

5

ダイアログそれはあなたがそれの要素が離れて行くという意味ではありませんダイアログを破壊しているという理由だけで、彼らはちょうど彼らの場所に戻っている、<body>の末尾に追加されますを作成 、

$(this).dialog("destroy").remove(); 

そうでない場合(現在は)あなたが新しい#message要素を毎回追加すると、何をしている:または、この場合には、まだ<body>の終わりに、あなたはまた、このようなこれらの要素は、.remove()に必要見ているのは古典的な重複IDの問題です最初のもの(最初にあなたが追加したもの、残ったことのないもの)の値を記録します。


は全体的にIE < 9例えば、いくつかのより多くの問題があることで&ようなものを持つと同じようString.prototype.trim()はので、あなたの値は、爆破うがありません。

function message(url) { 
$("<div>enter message: <textarea name='message' id='message'></textarea></div>") 
    .dialog(setProps(url)); 
} 

function setProps(url) { 
    return { 
    buttons: { 
     "ok": function() { 
     $.get('/act', { url: url, message: $.trim($("#message").val()) }, 
      function(data) { 
      $("#content").load('/react?url=' + url); 
      } 
     ); 
     $(this).dialog("destroy").remove(); 
     } 
    } 
    } 
} 
+0

ヒントをありがとう! – trajectory

+0

私は遅れて到着しても、ヒントのために非常に感謝!私のパズルを解決したのは、午前中にJavaScriptコードのデバッグに費やした – sthor69

関連する問題