我有两种形式都有自动增量行。到目前为止,当我点击添加按钮时,代码根据我的需要正常工作。但是现在我想将值从一行发布到另一行,而在另一个表中递增。同时我有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>
答案 0 :(得分:0)
$.each($('textarea'),function(){
$(this).on('keyup',function(){
$('body').append('<textarea>'+$(this).val()+'</textarea>');
});
});
您可以查看jQuery $.each()以在所有元素上循环显示此代码
答案 1 :(得分: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 );
});