Как я могу ссылаться на значение textarea в другой ячейке таблицы? - PullRequest
0 голосов
/ 02 июня 2011

Я хочу сослаться на содержимое текстовой области, но получаю неопределенное значение:

$(".send-comment").click(function(e) {
    e.preventDefault();
    var data = $(this).siblings(".comment-text").val();
    alert(data);
});

<tr>
    <td>#textAreaTag(label=false, name="comment[text]", class="comment-text")#</td>
    <td>#submitTag(value="Send", class="send-comment")#</td>
</tr>

Я подозреваю, что это может быть из-за того, что кнопка отправки не имеет братьев и сестер (она одна в тд) ... но, конечно, должен быть лучший способ получить значение, чем использование this.parent (). .child () ...

Я использую классы, потому что у меня есть несколько форм комментариев на одной странице, которые принадлежат разным постам.

К вашему сведению, сгенерированный источник из моего фреймворка, как и ожидалось ...

Ответы [ 3 ]

1 голос
/ 02 июня 2011

Текстовое поле не является родственным для кнопки отправки (согласно вашему коду).Дочерний элемент родителя (parent td) родной кнопки (td) кнопки отправки является тегом submit.

, поэтому ваш код должен быть:

var data = $(this).parent().prev().find(".comment-text").val();
1 голос
/ 02 июня 2011

вы можете использовать $(this).closest('tr').find('.comment-text') например

1 голос
/ 02 июня 2011

Попробуйте это:

$(".send-comment").click(function(e) {     
    e.preventDefault();     
    var prevCell = $(this).parent().prev();
    var data = $(".comment-text", prevCell).val();     
    alert(data); 
}); 

Alternate:

$(".send-comment").click(function(e) {     
    e.preventDefault();     
    var data = $(".comment-text", $(this).closest("tr")).val();     
    alert(data); 
}); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...