私はテキストエリアを持つダイアログを使用しています。 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('');
}
}
}
}
私は、id = 'message'の要素を複数回追加しようとしていると思われます(IDは一意である必要があるため)。それをclass = 'message'に置き換えると、あなたの問題を解決するかもしれません。 –
@conqenator - '.val()'は* first *要素の値を引き続き取得します。 –
@Nick:hmmm .last()。val()を使って解決するでしょうか?しかし、私はそれが最良の方法ではないと思います。 –