J'utilise un dialogue avec une zone de texte. En cliquant sur le bouton ok, la valeur de textarea est envoyée à un serveur via ajax.
La première fois que l'utilisateur écrit dans la zone de texte, la valeur est lue correctement, mais lors de toutes les actions suivantes, la valeur envoyée est la même que si l'utilisateur avait entré la même chaîne encore et encore.Jquery Dialog ne lit qu'une seule fois la valeur textarea
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('');
}
}
}
}
Je pense, le problème est la tentative d'ajouter un élément avec id = plusieurs fois « message » (puisque id doivent être uniques). Le remplacer par class = 'message' 'pourrait résoudre votre problème. –
@conqenator - '.val()' obtiendrait toujours la valeur de * l'élément * first *. –
@Nick: hmmm, en utilisant .last(). Val() résoudrait cela, non? Mais, je suppose que ce n'est pas le meilleur moyen. –