克隆字段的Jquery onchange事件
我想出了如何克隆我的表单行,并在每个表单字段的ID末尾附加一个指控号。因此,我认为在ID末尾附加了一个证明数字之后,就可以很容易地在更改事件中使用它来将一个ID的值复制到另一个ID,但这对克隆的行不起作用 我正在使用它创建新的表单行:克隆字段的Jquery onchange事件,jquery,clone,onchange,Jquery,Clone,Onchange,我想出了如何克隆我的表单行,并在每个表单字段的ID末尾附加一个指控号。因此,我认为在ID末尾附加了一个证明数字之后,就可以很容易地在更改事件中使用它来将一个ID的值复制到另一个ID,但这对克隆的行不起作用 我正在使用它创建新的表单行: $('#btnRemove').attr('disabled','disabled'); $('#btnAdd').click(function() { var num = $('.clonedInp
$('#btnRemove').attr('disabled','disabled');
$('#btnAdd').click(function() {
var num = $('.clonedInput').length;
var newNum = new Number(num + 1);
var newElem = $('#input' + num).clone().attr('id', 'input' + newNum);
newElem.children('.product').attr('id', 'product' + newNum).attr('name', 'product' + newNum);
newElem.children('.productid').attr('id', 'productid' + newNum).attr('name', 'productid' + newNum);
$('#input' + num).after(newElem);
$('#btnRemove').removeAttr('disabled','disabled');
if (newNum == 7)
$('#btnAdd').attr('disabled','disabled');
});
$('#btnRemove').on('click', function() {
$('.clonedInput').last().remove();
$('#btnAdd').removeAttr('disabled','disabled');
});
我正在(尝试)使用此代码将序列化产品id.val(value.split('-')[3])
从产品选择值复制到表单中的“id”字段。但它仅适用于第一个表单,不适用于“克隆”表单字段:
$("#product").on('change keyup', function() {
var value = $('option:selected', this).val();
$("#productid").val(value.split('-')[3]);
}).keyup();
$("#product2").on('change keyup', function() {
var value = $('option:selected', this).val();
$("#productid2").val(value.split('-')[3]);
}).keyup();
$("#product3").on('change keyup', function() {
var value = $('option:selected', this).val();
$("#productid3").val(value.split('-')[3]);
}).keyup();
$("#product4").on('change keyup', function() {
var value = $('option:selected', this).val();
$("#productid4").val(value.split('-')[3]);
}).keyup();
$("#product5").on('change keyup', function() {
var value = $('option:selected', this).val();
$("#productid5").val(value.split('-')[3]);
}).keyup();
$("#product6").on('change keyup', function() {
var value = $('option:selected', this).val();
$("#productid6").val(value.split('-')[3]);
}).keyup();
我把它放在JSFIDLE上,这样就更容易看出我的问题所在:当您创建
时,使用clone和append-to-DOM动态选择,所以您需要为它们使用委托事件处理程序
// delegate event handler
$('#myForm').on('change keyup', 'select[id^=product]', function() {
var value = $('option:selected', this).val();
$(this).next('input.productid').val(value.split('-')[3]);
}).keyup();
在创建时,请使用克隆选择并动态附加到DOM,因此需要为它们指定委托事件处理程序
// delegate event handler
$('#myForm').on('change keyup', 'select[id^=product]', function() {
var value = $('option:selected', this).val();
$(this).next('input.productid').val(value.split('-')[3]);
}).keyup();
谢谢!很抱歉,我花了一点时间才回复。我在尝试让此代码在我的表单中运行时遇到了问题(我的错)。谢谢!很抱歉,我花了一点时间才回复。我在试图让这段代码在我的表单中运行时遇到了麻烦(我的错)。