0

一番下のテキストエリアの値を取得する方法を見つけようとして夢中になっています。私は確かに問題であるjquery/javascriptを初めて使用します。私はそれを取得するための動作するコードコンボを見つけようと数時間試みました。

これが最初に変更されたときに、これら2つのテーブル行の下部テキストエリアの値を収集しようとしています。変更されたときに最初のテキストエリアの値を取得できますが、一番上のテキストエリアに変更が加えられたときに一番下の値が必要です。下部が変更されたときに上部を取得する関数を作成する必要があることを理解できたら、最初の解決策を取得したら、プロセスを逆にする方法を理解できると確信しています。

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 に答える