0

このようなテーブルがあります。

<table id="order-table">
    <tr class="row-header">
        <td style="width: 80px;">Line #</td>
        <td style="width: 100px;">ID #</td>
        <td style="width: 50px;">Qty</td>
        <td style="width: 100px;">Desc</td>
        <td style="width: 100px;">ABC8</td>
        <td style="width: 100px;">UPC</td>
        <td style="width: 100px;">NDC</td>
    </tr>
    <tr class="row">
        <td style="width: 80px;"><input class="row-target" readonly tabindex="-1" style="width: 80px; background: lightgray" type="text" value="10"></td>
        <td style="width: 100px;"><input class="id-target" style="width: 100px;" type="text" /></td>
        <td style="width: 50px;"><input class="qty-target" style="width: 50px;" type="text" /></td>
        <td style="width: 100px;"><input readonly tabindex="-1" style="width: 100px; background: lightgray" type="text" /></td>
        <td style="width: 100px;"><input readonly tabindex="-1" style="width: 100px; background: lightgray" type="text" /></td>
        <td style="width: 100px;"><input readonly tabindex="-1" style="width: 100px; background: lightgray" type="text" /></td>
        <td style="width: 100px;"><input readonly tabindex="-1" style="width: 100px; background: lightgray" type="text" /></td>
    </tr>
</table>

そして、次のようないくつかのjQuery:

function checkIdTarget(rownum) { 
    if ($(this).val().length === 8) {
        var rownum = $(this).parent("td").children(".row-target").val();
        alert (rownum);
        var newrow = '<tr class="row"><td style="width: 80px;"><input class="row-target" readonly tabindex="-1" style="width: 80px; background: lightgray" type="text" value="' + rownum + '"></td><td style="width: 100px;"><input class="id-target" style="width: 100px;" type="text" /></td><td style="width: 50px;"><input class="qty-target" style="width: 50px;" type="text" /></td><td style="width: 100px;"><input readonly tabindex="-1" style="width: 100px; background: lightgray" type="text" /></td><td style="width: 100px;"><input readonly tabindex="-1" style="width: 100px; background: lightgray" type="text" /></td><td style="width: 100px;"><input readonly tabindex="-1" style="width: 100px; background: lightgray" type="text" /></td><td style="width: 100px;"><input readonly tabindex="-1" style="width: 100px; background: lightgray" type="text" /></td></tr>';
        $(newrow).insertAfter($(this).parents("tr"));
        $("#button-submit-order").button("enable");
    }
    if ($(this).val().length > 8) {
        var x = $(this).val();
        $(this).val(x.slice(0, -1));
        $(this).effect("shake");
    }
    if (isNaN($(this).val())) {
        var x = $(this).val();
        $(this).val(x.slice(0, -1));
        $(this).effect("shake");
    }
}

row-target呼び出している現在の ID ボックスに相対的なクラスで入力ボックスから値を取得しようとしていますthis。値は未定義で戻ってきます。私は何を間違っていますか?

4

1 に答える 1

0

JQuery の 3 行目に、次のコードを記述します。

var rownum = $(this).closest("td").find(".row-target").val();
于 2013-11-05T10:44:56.240 に答える