我有一个ASP MVC4项目的“交易”输入页面,用户可以在信用卡或借记卡交易的其他内容中输入日期,金额和税金。从DropDownList中选择税率和类型,例如
- [EXE] 0%...免除
- [VAI] 20%......标准
- [VAO] 20%......标准
方括号中的三字母代码表示其类型,即是否可以索取。 DropDownList在控制器中填充了税对象:
IEnumerable<Tax> taxes = db.Taxes.ToList()
.Select(item => new Tax
{
TaxId = item.TaxId,
TaxMultiplier = item.TaxMultiplier,
TaxDescription = "[" + item.TaxType +"] "+ item.TaxPercentAmount + "%...." + item.TaxDescription
}).AsQueryable();
ViewBag.Taxes = new SelectList(taxes,"TaxId", "TaxDescription");
在视图的html部分我有
@Html.DropDownListFor(model => model.TaxID, (SelectList)ViewBag.Taxes)
最后还有一个'AutoCalculate'标志,当用户检查标志时,使用JQuery我将Tax Amount字段设置为灰色且不可编辑,并希望使用所选税项的'TaxMultiplier'值来计算增值税金额。加上。以前我在ViewBag的SelectList中添加了“TaxMultiplier”代替“TaxId”(之前我为每个税率添加了不同的税种,这是至关重要的)
$('#AutoTax').live('change', function () {
if ($(this).is(':checked')) {
var total = 0;
var amount = document.getElementById('Amount').value;
var tax = document.getElementById('TaxId').value;
total = amount * tax;
total = total.toFixed(2);
$('#VatAmt').val(total);
} else {
$('#VatAmt').val(0.0);
}
});
我对JQuery / JavaScript真的不太强大,我想知道是否有人可以帮助我更改上面的JavaScript以访问未存储在值(TaxID)或描述(TaxDescription)中的SelectList对象的属性?另一种选择是只有一个单独的DropDownList来选择3-Letter类型的代码,尽管我想尽可能减少不必要的附加字段。