将单个下拉列表计算器升级到多个下拉列表
Upgrade single dropdown calculator to multiple dropdown
我有这个脚本:
更新的小提琴:http://jsfiddle.net/EfYev/4/
目前,它仅适用于第一个字段。它就像:文本字段中的数字*下拉列表的跨度值=其他货币的结果如何重新排列脚本以使其与多个下拉列表一起使用,因此它可以像(数字*跨度值)+(数字*跨度值)并将其显示为一个结果?(总结)
j查询:
$(document).ready(function () {
function showTab(name) {
$('div.fruit').hide();
var $div = $('#' + name).show();
var number = parseInt($('.number').val(), 0);
$('span', $div).each(function () {
$(this).text(($(this).data('val') * number).toFixed(3));
});
}
$('#update').click(function() {
showTab($('#dropdown').val());
});
showTab($('#dropdown').val());
});
好吧,
首先,这绝不是最好的方法。我对答案进行了很大的自由,并对值进行了硬编码。
现场演示
我稍微清理了一下html,但主要只对JavaScript进行了更改。
我做的第一件事就像我说硬编码值一样。
var fruits = {
apple: {
apple: 1,
banana: 0.5,
pineapple: 8
},
banana: {
apple: 2,
banana: 1,
pineapple: 16
},
pineapple: {
apple: 0.125,
banana: 0.0625,
pineapple: 1
}
};
现在我个人会让你的HTML更容易阅读,并通过JS迭代以动态创建对象。当然,如果您期望从服务器获得不同的值,并且出于某种原因获取它们的唯一方法是通过 HTML 数据属性。
我做的下一件事是将您的点击事件更改为以下内容。
var vals = {
apple: 0,
banana: 0,
pineapple: 0
};
$('.dropdown').each(function () {
var fruitVal = $(this).prev('.number').val();
if (fruits[$(this).val()]) {
vals.apple += fruitVal * fruits[$(this).val()].apple;
vals.banana += fruitVal * fruits[$(this).val()].banana;
vals.pineapple += fruitVal * fruits[$(this).val()].pineapple;
}
});
$('.apple').text(vals.apple);
$('.banana').text(vals.banana);
$('.pineapple').text(vals.pineapple);
同样,我会根据之前收到的数据动态地制作vals
对象。我会迭代水果对象的顶级属性来创建它。
在我看来,有两个计算按钮很奇怪。我也讨厌使用 prev 来获取值,但是您没有为输入分配类,因此基本上无法引用哪个输入属于哪个下拉列表。
无论如何,一旦你得到值,它就归结为基本的数学。如果您有任何问题,请随时提问。
相关文章:
- 如何使用jQuery选择下拉列表的值
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- Javascript按钮下拉列表
- jQuery表单添加不适用于下拉列表
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 禁用jQuery中的下拉列表
- 如何在按钮中显示下拉列表中选定的元素
- 如何在从多选下拉列表中选择选项值时动态生成文本框
- 如何使用PHP和JS级联三个下拉列表
- 如何在使用剑道 MVVM 下拉列表时强制选择第一项
- 语义ui如何使用javascript启用或禁用下拉列表
- 将单个下拉列表计算器升级到多个下拉列表
- 引导程序中的单个日期、月份和年份下拉列表
- 单个列筛选不保存下拉列表 jQuery 的状态
- 对多个表行重用单个 HTML 选择/下拉列表
- 如何创建共享单个列表的链接下拉列表,并确保只能在一个下拉列表中选择每个值
- 在单个表单中从下拉列表中多次提交
- 在单个下拉列表中填充来自两个不同列的值
- 允许 typeahead,js 自动完成文本中的单词,而不仅仅是下拉列表中的单个值
- 如何使用下拉列表使单个HTML页面为主题选择不同的CSS样式表