在这里插入代码片
col.editor = {type: 'validatebox',options: {validType:'intOrFloat'}};
开启编辑后初始的方法事件
function InitShowWin0(index) {
var hxDataGrid = $('#' + "hxDataGrid" + indexChild + ''); //输入数量和单价计算金额和合计金额
//输入数量和单价计算金额和合计金额
var quantity = hxDataGrid.datagrid('getEditor', {index: index, field: "mainQuantity"});
if(quantity){
$(quantity.target).bind("blur", function () {
var num = $(quantity.target).val();
var reg = /^\d+(\.\d{1,4})?$/;
if (num.length > 0) {
if (!reg.test(num)) {
layui.layer.alert("输入的不是数值,或多于四位小数");
$(quantity.target).val("");
return;
}
var price = hxDataGrid.datagrid('getEditor', {index: index, field: "incloudRatePrice"});//含税单价
var noprice = hxDataGrid.datagrid('getEditor', {index: index, field: "noRatePrice"});//无税单价
var amount = hxDataGrid.datagrid('getEditor', {index: index, field: "incloudRateAmount"});
var noamount = hxDataGrid.datagrid('getEditor', {index: index, field: "noRateAmount"});
var unitPrice = $(price.target).val();
var unitNoPrice = $(noprice.target).val();
var rate=$("#rate").val()!=""?parseFloat($("#rate").val()):0;
$(amount.target).val(unitPrice == "" ? 0 : (parseFloat(unitPrice)+(parseFloat(unitPrice)*rate)/100) * parseFloat(num));
$(noamount.target).val(parseFloat(unitNoPrice == "" ? 0 : unitNoPrice) * parseFloat(num));
if (endEditing()) {
var rows = hxDataGrid.datagrid('getRows');
var totalAmount = 0.0;
_.forEach(rows, function (row) {
totalAmount += parseFloat(row.incloudRateAmount);
})
$("#totalAmount").val(totalAmount);
}
}
})
}
var noprice = hxDataGrid.datagrid('getEditor', {index: index, field: "noRatePrice"});
if(noprice){
$(noprice.target).bind("blur", function () {
var unitPrice = $(noprice.target).val();
var reg = /^\d+(\.\d{1,4})?$/;
if (unitPrice.length > 0) {
if (!reg.test(unitPrice)) {
layui.layer.alert("输入的不是数值,或多于四位小数");
$(noprice.target).val("");
return;
}
var quantity = hxDataGrid.datagrid('getEditor', {index: index, field: "mainQuantity"});
var amount = hxDataGrid.datagrid('getEditor', {index: index, field: "noRateAmount"});
var unitQuantity = $(quantity.target).val();
$(amount.target).val(parseFloat(unitPrice) * parseFloat(unitQuantity == "" ? 0 : unitQuantity));
}
})
}
var price = hxDataGrid.datagrid('getEditor', {index: index, field: "incloudRatePrice"});
if(price){
$(price.target).bind("blur", function () {
var unitPrice = $(price.target).val();
var reg = /^\d+(\.\d{1,4})?$/;
if (unitPrice.length > 0) {
if (!reg.test(unitPrice)) {
layui.layer.alert("输入的不是数值,或多于四位小数");
$(price.target).val("");
return;
}
var quantity = hxDataGrid.datagrid('getEditor', {index: index, field: "mainQuantity"});
var amount = hxDataGrid.datagrid('getEditor', {index: index, field: "incloudRateAmount"});
var unitQuantity = $(quantity.target).val();
var rate=$("#rate").val()!=""?parseFloat($("#rate").val()):0;
$(amount.target).val((parseFloat(unitPrice)+(parseFloat(unitPrice)*rate)/100) * parseFloat(unitQuantity == "" ? 0 : unitQuantity));
if (endEditing()) {
var rows = hxDataGrid.datagrid('getRows');
var totalAmount = 0.0;
_.forEach(rows, function (row) {
totalAmount += parseFloat(row.incloudRateAmount);
})
$("#totalAmount").val(totalAmount);
}
}
})
}
}
}