js-监听dom改变-监听table中增加一行tr-监听并触发change事件
// 取最后一行之前的所有行 方式1
$("#tr_service tr").not(":last").each(function () {
$(this).find("input[name='employee']").val(ids);
var select = $(this).find("select[data-name='employeeSelector']");
var idArray = ids.split(",");
select.val(idArray);
select.trigger("change");//触发一下change事件
});
/**
* 初始页面默认将第一个员工作为领料人问题
*/
(function initDefaultStuffReceiverListener() {//监听 某一dom组件的变化
// 只处理工单
if (_isSupportInitDefaultStuffReceiverListener()) {
var _targetDom = "#tr_stuff";
if (window.MutationObserver) {
var article = document.querySelector(_targetDom);
var options = {
'childList': true,
'attributes': true
};
var observer = new MutationObserver(function (mutations, observer) {
mutations.forEach(function (mutation) {//只会回调一次
// 只监听 新建行操作
if (mutation.addedNodes && mutation.addedNodes.length > 0) {
tryToGet1stItem1stEmploee($(mutation.addedNodes[0]));
}
});
});
observer.observe(article, options);
}
}
})();
function tryToGet1stItem1stEmploee($targetRow) {
var _rowLength = $("#tr_stuff tr").length;
if (_rowLength < 1) {
return;
}
//从会员卡批量添加材料,是在列表中直接插入多行,不影响最后一行空白行
setDefaultStuffReceiver($targetRow);
//通过输入框搜索添加材料,是在最后一行空白行载入材料,然后新增一行空白行
if (_rowLength - 2 >= 0 && get1stItem1stEmploee()) {
$targetRow = $("#tr_stuff tr:eq(" + (_rowLength - 2) + ")");
setDefaultStuffReceiver($targetRow);
}
//处理可能未选择的情况(会员卡批量材料,最后一行空白行暂不处理: _rowLength -1);
var $targetRowSelect;
for (var _i = 0; _i < _rowLength -1; _i++) {
$targetRow = $("#tr_stuff tr").eq(_i);
$targetRowSelect = $targetRow.find("select").last();
if ($targetRow && !$targetRowSelect.val()) {
//取项目列表服务技师第一个人
setDefaultStuffReceiver($targetRow);
}
}
}
function setDefaultStuffReceiver($targetRow) {
var stockOutNumber = $targetRow.find("input[name=stockOutNumber]").val();
var $targetRowSelect;
//已领料不处理
if (!stockOutNumber || parseInt(stockOutNumber) === 0) {
$targetRowSelect = $targetRow.find("select").last();
var defaultStuffReceiverId = get1stItem1stEmploee();
if (!defaultStuffReceiverId) {
//取项目列表服务技师第一个人
defaultStuffReceiverId = $targetRowSelect.find('option:eq(1)').val();
}
$targetRowSelect.val(defaultStuffReceiverId);
$targetRowSelect.last().trigger("change");
}
}
/*
* 默认领料人监听的单据范围
* 工单、理赔单 默认领料人
*/
function _isSupportInitDefaultStuffReceiverListener() {
if (typeof maintainTypePermission !== "undefined"
&& (maintainTypePermission === "GD" || maintainTypePermission === "LPD")) {
return true;
}
return false;
}
正文到此结束
- 本文标签: JavaScript
- 本文链接: https://code.jiangjiesheng.cn/article/99
- 版权声明: 本文由小江同学原创发布,转载请先联系本站长,谢谢。