嘿,我想做一些计算器,可以用自动填充来计算总价。首先我选择选项选择计划,然后选择计划后将自动生成基本价格,然后我输入折扣值,然后将自动生成总价格(基本价格折扣)。如何在我的代码中实现这一点:
这里是我的HTML:
html prettyprint-override"><form name="cal" action="">
<table>
<caption>
<h1>
Kalkulator
</h1>
<h3>
Paket Wisata Imam Tour
</h3>
</caption>
<tr>
<td>Nama Paket Tour</td>
<td>:</td>
<td>
<select name="" id="paket" onchange="myFunction(event)">
<option selected disabled>...</option>
<option value="Bali">Paket Tour Bali</option>
<option value="Korea">Paket Tour Korea</option>
<option value="Eropa">Paket Tour Eropa</option>
</select>
</td>
</tr>
<tr>
<td>Harga Paket</td>
<td>:</td>
<td>Rp.<input id="harga" name="harga" type="number" value="0"></td>
</tr>
<tr>
<td>Diskon</td>
<td>:</td>
<td><input id="diskon" name="diskon" type="number">%</td>
</tr>
<tr>
<td>Total Bayar</td>
<td>:</td>
<td><input id="tot" name="tot" type="text" value=""></td>
</tr>
</table>
</form>
我的JS:
function myFunction(event) {
console.log(event.target.value)
if (event.target.value === "Bali") {
document.getElementById("harga").value = 700000;
} else if (event.target.value === "Korea") {
document.getElementById("harga").value = 1500000;
} else if (event.target.value === "Eropa") {
document.getElementById("harga").value = 4000000;
}
};
您可以将事件侦听器添加到paket
和diskon
字段中。确保字段具有这些名称。
const form = document.forms['cal'];
const hargaMap = {
Bali: 700000,
Korea: 1500000,
Eropa: 4000000
};
const main = () => {
form.elements.paket.addEventListener('change', onPaketChange);
form.elements.diskon.addEventListener('change', onDiskonChange);
form.elements.diskon.addEventListener('input', onDiskonChange);
};
const applyDiscount = (amount, discount) => amount - (amount * discount);
const onPaketChange = e => {
form.elements.harga.value = hargaMap[e.target.value] || 0;
};
const onDiskonChange = e => {
const harga = parseInt(form.elements.harga.value || '0', 10);
const diskon = parseInt(form.elements.diskon.value || '0', 10) / 100;
form.elements.tot.value = applyDiscount(harga, diskon).toFixed(2);
};
main();
<form name="cal" action="">
<table>
<caption>
<h1>
Kalkulator
</h1>
<h3>
Paket Wisata Imam Tour
</h3>
</caption>
<tr>
<td>Nama Paket Tour</td>
<td>:</td>
<td>
<select name="paket" id="paket">
<option selected disabled>...</option>
<option value="Bali">Paket Tour Bali</option>
<option value="Korea">Paket Tour Korea</option>
<option value="Eropa">Paket Tour Eropa</option>
</select>
</td>
</tr>
<tr>
<td>Harga Paket</td>
<td>:</td>
<td>Rp.<input id="harga" name="harga" type="number" value="0"></td>
</tr>
<tr>
<td>Diskon</td>
<td>:</td>
<td><input id="diskon" name="diskon" type="number" min="0" value="0">%</td>
</tr>
<tr>
<td>Total Bayar</td>
<td>:</td>
<td><input id="tot" name="tot" type="text" value="0.00"></td>
</tr>
</table>
</form>
问题内容: 就像是有什么,但对?我要显示的数据是使用的关联。 我已经尝试使用过,但是在这种情况下,我必须在hibernate状态下使用它,这需要我指定using,并且每当我检索到through时,列表中的元素之间都会有空格,具体取决于。 我需要自动填充集合,因为我需要在创建时动态生成。当我使用plain时,得到以下内容: 还有其他解决方案吗? 编辑 我正在尝试实现动态表格 问题答案: 您无法在MV
我在几个表单上遇到了chrome自动填充行为的问题。 表单中的字段都有非常常见和准确的名称,如“email”、“name”或“password”,它们还设置了。 autocomplete标志已成功禁用了autocomplete行为,在该行为中,当您开始键入时会显示下拉值,但没有更改Chrome将字段自动填充为的值。 这个行为是可以的,除非chrome不正确地填充输入,例如用电子邮件地址填充电话输入
我有一些组合框,它们在表单中具有预定义的值。但是,当用户提交表单并且我使用以下方法重置时,它工作正常: 这将在大多数区域完美地重置表单,并且组合框将再次用预定义的值重新填充,但是,如果您将值保持在新表单中并再次提交,您将收到一个“无法读取空的属性'0'”错误 我如何预填充值: 为避免此错误,用户当前需要做的是在组合框中重新选择当前选择的内容。如果我回答了以下问题之一,我觉得我可以避免这个问题: A
这个片段应该很好地说明了这一点,但下面是我想要实现的: 我希望我的第一行是,以便它跨越网格。这第一行并不总是存在的。 网格中的其他列应该是我不知道在任何给定的时间会有多少列。 问题是:当存在跨行时,以下列的行为是而不是。该片段显示跨列的存在如何改变后续列的行为。屏幕截图显示了正在创建的额外列。 您需要全屏运行代码段来查看它的操作。 如有任何建议将不胜感激。谢谢! null null
在Thymeleaf中,我可以使用 但是我不知道如何输出到表单动作属性中。 有人对Thymeleaf超文本标记语言有什么想法吗? 样例JavaSpring-MVC控制器代码
问题内容: 我已经看到这个问题在互联网上流传,但是我还没有找到可行的解决方案。基本上,我想加载我的应用程序并按下一个按钮;然后,该按钮操作将在已加载到Web视图中的网站中填写用户名和密码(或等待onPageFinished)。最后,登录页面上的提交按钮将被激活。 据我了解,这可以通过使用loadUrl(javascript)进行Java注入来完成,但是我不知道用Java命令填写字段是什么。对于iO