使用jquery/javascript的收费选项';数学';逻辑
我正在尝试实现一个广告系统,它将根据用户的喜好向用户收费。默认情况下,如果用户没有选择任何选项,他们的广告将显示在所有设备上。我只会在他们选择特定设备时向他们收费 如果用户选择移动,它将显示“ios”、“android”和“windows phone”复选框。每个选项为1美元。因此,如果用户选择移动和iOS,将收取2美元,以此类推。如果用户选择所有选项,将是0.00美元,因为默认情况下,他们的广告将显示在所有设备上,我不收取任何费用 另外,最后一个条件是:如果我点击“手机”,它会显示“ios”、“Android”和“Windows Phone”,如果我选择其中一个,它就不会再增加1美元。 例如:“手机”将是1美元,如果我选择“ios”,它也将是1美元。但如果我选择“ios”和“安卓”,那将是2美元 我自己编写的,它似乎不像我想要的那样工作,需要你的帮助 以下是我编写的部分工作代码: HTML使用jquery/javascript的收费选项';数学';逻辑,javascript,jquery,Javascript,Jquery,我正在尝试实现一个广告系统,它将根据用户的喜好向用户收费。默认情况下,如果用户没有选择任何选项,他们的广告将显示在所有设备上。我只会在他们选择特定设备时向他们收费 如果用户选择移动,它将显示“ios”、“android”和“windows phone”复选框。每个选项为1美元。因此,如果用户选择移动和iOS,将收取2美元,以此类推。如果用户选择所有选项,将是0.00美元,因为默认情况下,他们的广告将显示在所有设备上,我不收取任何费用 另外,最后一个条件是:如果我点击“手机”,它会显示“ios”、
如果勾选了所有选项,则不会将美元重置为0 将onclick函数替换为:
function computeTotal() {
// get all mobile
var mobileList = document.getElementsByName("mobile"),
chkCount = 0,
i = 0,
len = mobileList.length,
totalMobile = 0;
for (; i < len; i ++) {
if (mobileList[i].checked) {
chkCount += 1;
}
}
totalMobile = chkCount;
// get all pc
var pcList = document.getElementsByName("pc"),
totalPC = 0;
// reset value of these variables
chkCount = 0;
i = 0;
len = pcList.length;
for (; i < len; i ++) {
if (pcList[i].checked) {
chkCount += 1;
}
}
totalPC = chkCount;
// compute total
var total = 0;
if (totalMobile == mobileList.length && totalPC == pcList.length) {
// total is zero since all device is selected
} else if (totalMobile == mobileList.length && totalPC != pcList.length) {
total = totalPC;
} else {
total = totalMobile + totalPC;
}
// display
document.getElementById("total").value = total;
}
函数computeTotal(){
//移动
var mobileList=document.getElementsByName(“移动”),
chkCount=0,
i=0,
len=移动列表长度,
totalMobile=0;
对于(;i
另外,在设备的复选框中添加一个名称属性。对于pc设备,名称值为pc,对于移动设备,移动。将onclick功能替换为:
function computeTotal() {
// get all mobile
var mobileList = document.getElementsByName("mobile"),
chkCount = 0,
i = 0,
len = mobileList.length,
totalMobile = 0;
for (; i < len; i ++) {
if (mobileList[i].checked) {
chkCount += 1;
}
}
totalMobile = chkCount;
// get all pc
var pcList = document.getElementsByName("pc"),
totalPC = 0;
// reset value of these variables
chkCount = 0;
i = 0;
len = pcList.length;
for (; i < len; i ++) {
if (pcList[i].checked) {
chkCount += 1;
}
}
totalPC = chkCount;
// compute total
var total = 0;
if (totalMobile == mobileList.length && totalPC == pcList.length) {
// total is zero since all device is selected
} else if (totalMobile == mobileList.length && totalPC != pcList.length) {
total = totalPC;
} else {
total = totalMobile + totalPC;
}
// display
document.getElementById("total").value = total;
}
函数computeTotal(){
//移动
var mobileList=document.getElementsByName(“移动”),
chkCount=0,
i=0,
len=移动列表长度,
totalMobile=0;
对于(;i
另外,在设备的复选框中添加一个名称属性。对于pc设备,名称值是pc,对于移动设备,移动。默认情况下选择所有复选框是否更有意义?为什么jQuery的使用不一致?@blex,如果全部选中,如果用户只需要一个选项,则必须取消选中大部分复选框。默认情况下选择所有复选框是否更有意义?为什么jQuery的使用不一致?@blex,如果选中了所有复选框,如果用户只需要一个选项,则必须取消选中大部分复选框。我做了一些修改。但是,如果选中移动设备和pc,则总数也必须为0。另一个条件是,如果用户点击手机和ios,总数只有“1”。用户选择的第一个操作系统选项不计算在内。我已经使用您的代码更新了一个新的JSFIDLE。我做了一些修改。但是,如果选中移动设备和pc,则总数也必须为0。另一个条件是,如果用户点击手机和ios,总数只有“1”。用户选择的第一个操作系统选项不计算在内。我已经使用您的代码更新了一个新的JSFIDLE。
function computeTotal() {
// get all mobile
var mobileList = document.getElementsByName("mobile"),
chkCount = 0,
i = 0,
len = mobileList.length,
totalMobile = 0;
for (; i < len; i ++) {
if (mobileList[i].checked) {
chkCount += 1;
}
}
totalMobile = chkCount;
// get all pc
var pcList = document.getElementsByName("pc"),
totalPC = 0;
// reset value of these variables
chkCount = 0;
i = 0;
len = pcList.length;
for (; i < len; i ++) {
if (pcList[i].checked) {
chkCount += 1;
}
}
totalPC = chkCount;
// compute total
var total = 0;
if (totalMobile == mobileList.length && totalPC == pcList.length) {
// total is zero since all device is selected
} else if (totalMobile == mobileList.length && totalPC != pcList.length) {
total = totalPC;
} else {
total = totalMobile + totalPC;
}
// display
document.getElementById("total").value = total;
}