我疯狂地想弄清楚如何获得底部textarea的价值。我是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);
});
});
答案 0 :(得分:5)
在这一行:
yearEnd = $(this).next('tr.years').find('textarea').val();
$(this)指向textarea,而不是tr。
尝试:
yearEnd = $(this).closest('tr').next('tr.years').find('textarea').val();