텍스트 영역이있는 대화 상자를 사용하고 있습니다. 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()을 사용하면이를 해결할 수 있습니다. 그러나 나는 그것이 최선의 방법이 아닐 것이라고 생각한다. –