JavaScript添加新行并使用下拉值中的数据填充新行输入
我希望你能帮我解决我遇到的Javascript问题,我已经盯着这个问题看了好几天了,我就是想不出来 我有一个脚本,它拆分选项下拉列表的值,并用拆分后的值填充某些字段 然后,我有了一个“添加订单行”超链接,可以向表中添加新行,但我希望上述功能也能在任何新行上实现,但什么都不会发生 我在中重新创建了这个JavaScript添加新行并使用下拉值中的数据填充新行输入,javascript,jquery,html,function,Javascript,Jquery,Html,Function,我希望你能帮我解决我遇到的Javascript问题,我已经盯着这个问题看了好几天了,我就是想不出来 我有一个脚本,它拆分选项下拉列表的值,并用拆分后的值填充某些字段 然后,我有了一个“添加订单行”超链接,可以向表中添加新行,但我希望上述功能也能在任何新行上实现,但什么都不会发生 我在中重新创建了这个 $(窗口).load(函数(){ var selectEl=document.getElementById('part_selection'); 选择el.onchange=函数(){ //var
$(窗口).load(函数(){
var selectEl=document.getElementById('part_selection');
选择el.onchange=函数(){
//var input1=document.getElementsByName('PART_NO');
var input2=document.getElementById('PART_DESCRIPTION');
var input3=document.getElementById(“部分价格”);
var input4=document.getElementById('UNIT_MEAS');
var val=该值;
var parts=val.split(“”);
/*input1.value=零件[0]*/
input2.value=零件[1];
input3.value=零件[2];
input4.value=零件[3];
}
});
$(函数(){
var计数器=1;
$('a.add-line')。在('click',function()上
{
计数器++;
$(this).prev('table.orderlinelist').find('tr').last().clone().find('input').val('').end().find('input.ORDER_LINE_NO').val(counter.end().appendTo('table.orderlinelist');
});
});
线
部分
零件说明
单价
数量
计量单位
行总数
选择一个零件
5461
你能给我指一下正确的方向吗
干杯您正在复制元素的标识符,并指定此事件更改特定的“选择”。 你最好以这种方式与类一起工作
以下是您可以执行的步骤:
class
属性添加到input
标记,而不是ID
find
,根据其类
属性查找输入我对您的代码执行了以下步骤:
$(document).on("change", "table.orderlinelist .part_selection", function () {
var jrow = $(this).closest('tr');
var input2 = jrow.find('.PART_DESCRIPTION');
var input3 = jrow.find('.PART_PRICE');
var input4 = jrow.find('.UNIT_MEAS');
var val = this.value;
var parts = val.split("_");
input2.val(parts[1]);
input3.val(parts[2]);
input4.val(parts[3]);
});
这是您的工作首先,当您添加行时,停止使用id,id是唯一的,并且只使用一次,当您复制行时,您将有多个相等的id。
$(".orderlinelist").on("change", ".part_selection", function (e) {});
$(document).on("change", "table.orderlinelist .part_selection", function () {
var jrow = $(this).closest('tr');
var input2 = jrow.find('.PART_DESCRIPTION');
var input3 = jrow.find('.PART_PRICE');
var input4 = jrow.find('.UNIT_MEAS');
var val = this.value;
var parts = val.split("_");
input2.val(parts[1]);
input3.val(parts[2]);
input4.val(parts[3]);
});