由于业务需要,原单一支付方式现存在多种支付方式的可能性,故在原有基础上进行扩充,可自由增减付款方式(最少一种,最多三种),如下图:

fe0816f3d78f3546b4b1ef31529b2a62.png

31fce6ae64a383757f51b29549000492.png

html代码部分:

售价:
付款方式:

现金

银行卡

微信

支付宝

Js代码部分:

$(function() {

$("#txtAmount").change(function () {

$("#txtPayAmount").val($(this).val());//默认第一个付款方式

if ($("#divPayTypelist .divPayType").length > 0) {

$("#divPayTypelist .divPayType").each(function() {

$(this).val(''); //清空已添加的新付款方式

});

}

});

});

//新增支付方式

function Add() {

if ($("#divPayTypelist .divPayType").length >= 2) {

alert('最多支持三种支付方式!');

return;

}

var html = '

' + $("#ddlPayType").html() + '
';

$("#divPayTypelist").append($(html));

}

//减少支付方式

function Reduce() {

if ($("#divPayTypelist .divPayType").length == 0) {

return;

}

var pay = $("#divPayTypelist .divPayType:eq(" + ($("#divPayTypelist .divPayType").length - 1) + ")").find('.inputPay').val(); //获取最后一种付款方式中文本框的金额

if (pay != '') {

var sAmount = parseFloat($("#txtPayAmount").val()) + parseFloat(pay);

if (sAmount > parseFloat($("#txtAmount").val())) {

$("#txtPayAmount").val($("#txtAmount").val());

} else {

$("#txtPayAmount").val(sAmount); //回填默认第一种付款方式中文本框的金额

}

}

$("#divPayTypelist .divPayType:eq(" + ($("#divPayTypelist .divPayType").length - 1) + ")").remove(); //删除最后一张付款方式

}

//文本框获得焦点时,重新计算金额

function Calculate(obj) {

var sum = 0;

$(".inputPay").not(obj).each(function() {

if ($(this).val() != '') {

sum += parseFloat($(this).val());

}

});

$(obj).val((parseFloat($("#txtAmount").val()) - sum).toFixed(2));

}

//文本框的值改变时,重新计算金额

function CalculateChange(obj) {

var sum = 0;

$(".inputPay").each(function () {

if ($(this).val() != '') {

sum += parseFloat($(this).val());

}

});

if (sum > parseFloat($("#txtAmount").val())) {

Calculate(obj);

}

}

//文本框只能输入数字和浮点数

function onlyNumber(obj) {

//得到第一个字符是否为负号

var t = obj.value.charAt(0);

//先把非数字的都替换掉,除了数字和.

obj.value = obj.value.replace(/[^\d\.]/g, '');

//必须保证第一个为数字而不是.

obj.value = obj.value.replace(/^\./g, '');

//保证只有出现一个.而没有多个.

obj.value = obj.value.replace(/\.{2,}/g, '.');

//保证.只出现一次,而不能出现两次以上

obj.value = obj.value.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.');

//如果第一位是负号,则允许添加

if (t == '-') {

obj.value = obj.value.replace('-', '');//'-' + obj.value;

}

}

//提交

function checkForm() {

var str = '';

var sum = parseFloat("0");

$(".divPayType").each(function () {

if (str != '') {

str += ';';

}

str += $(this).find("select").val() + '|' + $(this).find("input").val();

sum += parseFloat($(this).find("input").val() == '' ? "0" : $(this).find("input").val());

});

if (sum != parseFloat($("#txtAmount").val())) {

alert('付款总金额与售价不相等!');

return false;

}

return true;

}

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐