0

我疯了,想弄清楚如何获得底部文本区域的价值。我是 jquery/javascript 的新手,我确定这是问题所在,我尝试了几个小时来找出一个工作代码组合来检索它。

当第一次更改时,我试图收集这两个表行的底部文本区域的值。我可以在更改第一个 textarea 值时很好地获取它,但是当对顶部 textarea 进行更改时,我需要底部的值。一旦我弄清楚我需要编写一个函数来在底部改变时获取顶部,我确定一旦我得到初始解决方案,我就可以弄清楚如何逆转这个过程。

tableRow 类和 id 名称不是必需的,我在测试过程中添加了这些名称。

任何帮助将不胜感激。

//html

<tr class="years" id="yearStart">
    <td class="fieldlabel">Year Range Start</td>
    <td colspan="7" class="textareacontainer">
        <textarea class="multiedit-field" name="yearRangeStart-<?php echo $k->id; ?>">
        <?php echo $k->yearRangeStart; ?></textarea>
    </td>
</tr>
<tr class="years" id="yearEnd">
    <td class="fieldlabel">Year Range End</td>
    <td colspan="7" class="textareacontainer">
        <textarea class="multiedit-field" name="yearRangeEnd-<?php echo $k->id; ?>">
        <?php echo $k->yearRangeEnd; ?></textarea>
    </td>
</tr>

//jQuery

$("#yearStart textarea").live("change", function(){

yearStart = $(this).val();

yearEnd = $(this).next('tr.years').find('textarea').val();

$.post("http://localhost:8888/...",
{
yearStart: yearStart,
yearEnd: yearEnd
},
function(data,status){
alert("\nEnd: " + yearEnd + "\nStart: " + yearStart + "\nData: " + data + "\nStatus: " + status);
});
});
4

1 回答 1

5

在这条线上:

 yearEnd = $(this).next('tr.years').find('textarea').val();

$(this) 指向一个文本区域,而不是 tr。

尝试:

yearEnd = $(this).closest('tr').next('tr.years').find('textarea').val();
于 2012-12-21T18:39:45.900 回答