0

我有一个表格,其中包含一个包含 3 个输入的表格,每行有一个跨度。第一个输入是产品名称。当它被填写并失去焦点时,我正在使用 ajax post 函数来获取我手头的数量。然后我需要将该值放入跨度中。问题是动态添加的这些行中可能有 100 多行我曾尝试使用 .next() 像这样(

这是jquery。

$( document ).ready(function () {
  // set an on click on the button
  $('input[id^="products"]').blur(function () {
        var productName = $(this).val();
        $.ajax({
    type: "POST",
    url: "<?php echo site_url('autocomplete/get_info'); ?>",
    dataType: "json",
    data: {productName:productName},
    success: function(msg){  
        $('span[id^="qoh"]').html(msg);


    }
    });
  });
});

这是 Codeignighter 创建的表格和表格

<?php echo form_open('transactions/transaction_review'); ?>

        <div class="form_settings">


            <p><?php
                    $attributes = array(
                            'sales_reciept' => 'Sales Reciept',
                            'invoice' => 'Invoice'
                    ); 
                    echo form_dropdown('transaction_type', $attributes); ?></p>
            <p><?php echo form_dropdown('customer', $customerName); ?></p>
        <table id="product_table" style="width:100%; border-spacing:0;">    
            <tr>
                <th>
                    Product Name
                </th>
                <th>
                    Description
                </th>

                <th>
                    Quantity
                </th>
                <th>
                    Quantity On Hand
                </th>
                <th>
                    Price
                </th>


            </tr>
            <?php
            for($index = 1; $index <= $product_num; $index++)
            {                       
                echo ' <tr id="product_info' . $index . '">
                            <td rowspan="1">' . form_input('product' . $index, 'Product', 'class="class-1" id="products"') . '</td>
                            <td rowspan="1">' . form_input('description' . $index, 'Description', 'class="class-1" ') . '</td>
                            <td rowspan="1">' . form_input('quantity' . $index, 'Quantity', 'class="class-1"') . '</td>
                            <td rowspan="1"><span id="qoh' . $index . '">0</span></td>
                            <td rowspan="1">' . form_hidden('ctrl' . $index, 'ctrl') . '</td>
                        </tr>';
            }
                        echo form_hidden('index', $index, 'id="index"');    
            ?>





        </table>
        <table id="tender_info">
            <tr id="">
                <td><?php echo form_input('elements', '0', 'id="elements"'); ?>

                </td>
                <td></td>
                <td></td>
                <td><p style="text-align: right"></p></td>
                <td><?php echo form_input('sub_total', '0.00', 'class="subtotal"'); ?></td>
            </tr>
            <tr>
                <td></td>
                <td></td>
                <td></td>
                <td><?php echo form_dropdown('paymentType', $payment_type); ?></td>
                <td><?php echo form_input('paymentAmount', 'Total', 'class="total"'); ?></td>
            </tr>
            <tr>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td><?php echo form_input('discountAmount', 'discountAmount', 'class="class-1"'); ?></td>
            </tr>
        </table>
        <p><?php echo form_input('note', 'note'); ?></p>
        <?php echo form_hidden('status', 'status'); ?>
        <p style="padding-top: 15px"><?php echo form_submit('submit', 'Create Transaction'); ?></p>
        </div>
 </div>     
    <?php echo form_close(); ?>

从 ajax 帖子返回的值需要添加到跨度中,每行都有一个 id od qoh "rownumber"。我能够获取该值,并且当前编写的脚本将所有 qoh 跨度更改为相同的值。我曾尝试在 jquery 中使用 .next() 函数更改$('span[id^="qoh"]').html(msg);为此$(this).next('span').html(msg);,但这根本不起作用。我还尝试获取产品输入的父级并使用 .last ,但这也没有给我任何帮助。

4

1 回答 1

0

更改以下行并尝试(我在这里没有给出整个代码只是要更改的行),希望它有效。:

<td rowspan="1">' . form_input('product' . $index, 'Product', 'class="class-1 prods" id="products_'.$index.'"') . '</td>

<td rowspan="1"><span id="qoh_' . $index . '">0</span></td>

$('.prods').blur(function () {

$('qoh_'+productName).html(msg);
于 2013-09-04T14:38:17.897 回答