0

我有两个表格都有自动增量行。到目前为止,当我单击添加按钮时,代码可以根据我的需要正常工作。但现在我想将值从一行发布到另一行中,该值在其他表中递增。同时我有 javascript 代码,但该代码在自动增量函数中似乎无法正常工作。这是我的jQuery:

<script type='text/javascript'>
    //<![CDATA[
     $(document).ready(function() {
      var currentItem = 7;
            $('#addnew').click(function() {
                currentItem++;
                $('#items').val(currentItem);
                $('#items2').val(currentItem);
                var strToAdd = '<tr><td align="center"><input type="text" size="6" maxlength="6" id="ord_' + currentItem + '" maxlength="6" name="ord_' + currentItem + '" class="form-input-oth" onkeyup=$("#ordby_'+ currentItem +'").val($("#ordby_'+ currentItem +'").val())/></td>\n\
                                    <td align="center"><input type="text" size="6" maxlength="6" id="srno' + currentItem + '" maxlength="6" name="srno_' + currentItem + '" class="form-input-oth" onkeyup="document.getElementById("srno_' + currentItem + '").value = this.value;"/></td>\n\
                                    <td align="center"><textarea name="descrip_' + currentItem + '" id="descrip_' + currentItem + '" cols="70" class="form-input-textarea" onkeyup="document.getElementById("descrip_' + currentItem + '").value = this.value;"></textarea></td>\n\
                                    <td align="center"><input type="text" size="6" maxlength="9" id="unit_' + currentItem + '" maxlength="6" name="unit_' + currentItem + '" class="form-input-rate" onkeyup="document.getElementById("unit_' + currentItem + '").value = this.value;"/></td>\n\
                                    <td align="center"><input type="text" size="6" maxlength="9" id="rate_' + currentItem + '" maxlength="6" name="rate_' + currentItem + '" class="form-input-rate" onkeyup="document.getElementById("rate_' + currentItem + '").value = this.value;"/></td></tr>';

                var strToAdd3 = '<tr><td align="center"><input type="text" size="6" maxlength="6" id="ord_' + currentItem + '" maxlength="6" name="ord_' + currentItem + '" class="form-input-oth"  /></td>\n\
                                    <td align="center"><input type="text" size="6" maxlength="6" id="srno_' + currentItem + '" maxlength="6" name="srno_' + currentItem + '" class="form-input-oth"  /></td>\n\
                                    <td align="center"><textarea name="text_' + currentItem + '" id="descrip_' + currentItem + '" cols="70" style="display: none;"></textarea></td>\n\
                                    <td align="center"><input type="text" size="6" maxlength="9" id="unit_' + currentItem + '" maxlength="6" name="unit_' + currentItem + '" class="form-input-rate"  /></td>\n\
                                    <td align="center"><input type="text" size="6" maxlength="9" id="rate_' + currentItem + '" maxlength="6" name="rate_' + currentItem + '" class="form-input-rate"  /></td></tr>';

                $('#data').append(strToAdd);
                $('#data3').append(strToAdd3);

            });
        });

    //]]>
    </script>
4

2 回答 2

0
   $.each($('textarea'),function(){
     $(this).on('keyup',function(){
        $('body').append('<textarea>'+$(this).val()+'</textarea>'); 
          });
        });

您可以检查jQuery $.each()以在所有元素上循环此代码

于 2013-04-05T10:35:49.267 回答
0

你可以试试去掉这个...

onkeyup=$("#ordby_'+ currentItem +'").val($("#ordby_'+ currentItem +'").val())

...并添加此事件

$( '.class-name-for-input-element-you-want-to-attach-event-to' ).on( 'keyup', function() {
    var itemIdx = parseInt( this.id.substr( 4 ), 10 ); // Strips the 'Ord_' from the id
    // Do whatever you need to do with the integer

    // Find element in #data3 and replace its value with the value in the element that triggered this event
    $( '#data3' ).find( 'selector' ).val( this.value );
});

为了使它起作用,您需要为每个输入元素添加一个类名。

更简单的版本
或者如果你想将所有输入元素的值复制到#data3表对应的输入元素,使用这个:

$( '#data' ).on( 'keyup', 'input, textarea', function() {
    $( '#data3' ).find( '#' + this.id ).val( this.value );
});

备注
您只能将事件附加到 DOM 中已经存在的元素,因此您不能直接将事件附加到 input 或 textarea 元素。相反,您可以将事件附加到该事件上#data,我假设它已经在 DOM 中。

没有重复的 ID(从 #data3 表的输入元素中删除的 ID)

$( '#data' ).on( 'keyup', 'input, textarea', function() {
    $( '#data3' ).find( '[name="' + this.id + '"]' ).val( this.value );
});
于 2013-04-05T10:36:35.897 回答