单击重置单个值
Reset single values on click
我有一个有两个选项的表格。用户可以选择填写选项a和添加选项b。最后计算所有填充输入的总和。我使用显示隐藏功能来显示选项 b 的字段。
如果可能的话,我尝试实现的是当用户选择两个选项时,填写它们并得到结果,如果他们选择改回选项 a,删除选项 b 的值并更新计算自动。
$("#option-b").click(function() {
$(".va3, .va4").show();
});
$("#option-a").click(function() {
$(".va3, .va4").hide();
});
calculate = function() {
var optiona1, optiona2, optiona3, optiona4, resultss;
optiona1 = Number(document.getElementById("a1").value);
optiona2 = Number(document.getElementById("a2").value);
optiona3 = Number(document.getElementById("a3").value);
optiona4 = Number(document.getElementById("a4").value);
if (a3 == null || a3 == "", a4 == null || a4 == "") {
resultss = parseInt(optiona1) + parseInt(optiona2);
} else {
resultss = parseInt(optiona1) + parseInt(optiona2) + parseInt(optiona3) + parseInt(optiona4);
}
document.getElementById('a5').value = resultss;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="option-a" onclick="document.getElementById('a3, a4').value = '0'">option a</button>
<button id="option-b">option b</button><br>
<label>Option a price 1:</label><input id="a1" type="text" /><br>
<label>Option a price 2:</label><input id="a2" type="text" /><br>
<label class="va3" style="display: none">Option b price 1:<input id="a3" type="text" /></label><br>
<label class="va4" style="display: none">Option b price 2:<input id="a4" type="text" /></label><br>
<label>Result:</label><input id="a5" type="text" onfocus="calculate()" name="total_amt" />
我建议将 option-a
和 option-b
保留为复选框或单选按钮。
复选框,如果两个都可以选择 [OR] 单选按钮,如果一次只能选择 1 个。
并添加一个计算按钮。单击按钮进行计算。
<label for="option-a">Option A</label>
<input id="option-a" type="checkbox" name="option" value="a" />
<label for="option-b">Option B</label>
<input id="option-b" type="checkbox" name="option" value="b" />
<label class="va1" style="display: none">Option a price 1:<input id="a1" type="number" /></label><br>
<label class="va2" style="display: none">Option a price 2:<input id="a2" type="number"/></label><br>
<label class="va3" style="display: none">Option b price 1:<input id="a3" type="number" /></label><br>
<label class="va4" style="display: none">Option b price 2:<input id="a4" type="number" /></label><br>
<label>Result:</label><input id="a5" type="text" name="total_amt" />
然后实现一个 'change' 侦听器,它执行以下操作。
$('input[name="option"]').on('change', function(e){
const isChecked = $(e.target).is(":checked");
const optionValue = $(e.target).val();
if(optionValue == "a" && isChecked){
$(".va1, .va2").show();
$("#a1")[0].value = ""
$("#a2")[0].value = ""
}else if(optionValue == "b" && isChecked){
$(".va3, .va4").show();
$("#a3")[0].value = ""
$("#a4")[0].value = ""
} else if(optionValue == "a" && !isChecked){
$(".va1, .va2").hide();
$("#a1")[0].value = "";
$("#a2")[0].value = ""
} else if(optionValue == "b" && !isChecked){
$(".va3, .va4").hide();
$("#a3")[0].value = ""
$("#a4")[0].value = ""
}
});
然后为输入文本字段实现一个 focusout
事件。这将确保在输入数字更改时调用计算。
$('input[type=number]').on('focusout', calculate);
这是工作fiddlelink
我有一个有两个选项的表格。用户可以选择填写选项a和添加选项b。最后计算所有填充输入的总和。我使用显示隐藏功能来显示选项 b 的字段。
如果可能的话,我尝试实现的是当用户选择两个选项时,填写它们并得到结果,如果他们选择改回选项 a,删除选项 b 的值并更新计算自动。
$("#option-b").click(function() {
$(".va3, .va4").show();
});
$("#option-a").click(function() {
$(".va3, .va4").hide();
});
calculate = function() {
var optiona1, optiona2, optiona3, optiona4, resultss;
optiona1 = Number(document.getElementById("a1").value);
optiona2 = Number(document.getElementById("a2").value);
optiona3 = Number(document.getElementById("a3").value);
optiona4 = Number(document.getElementById("a4").value);
if (a3 == null || a3 == "", a4 == null || a4 == "") {
resultss = parseInt(optiona1) + parseInt(optiona2);
} else {
resultss = parseInt(optiona1) + parseInt(optiona2) + parseInt(optiona3) + parseInt(optiona4);
}
document.getElementById('a5').value = resultss;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="option-a" onclick="document.getElementById('a3, a4').value = '0'">option a</button>
<button id="option-b">option b</button><br>
<label>Option a price 1:</label><input id="a1" type="text" /><br>
<label>Option a price 2:</label><input id="a2" type="text" /><br>
<label class="va3" style="display: none">Option b price 1:<input id="a3" type="text" /></label><br>
<label class="va4" style="display: none">Option b price 2:<input id="a4" type="text" /></label><br>
<label>Result:</label><input id="a5" type="text" onfocus="calculate()" name="total_amt" />
我建议将 option-a
和 option-b
保留为复选框或单选按钮。
复选框,如果两个都可以选择 [OR] 单选按钮,如果一次只能选择 1 个。
并添加一个计算按钮。单击按钮进行计算。
<label for="option-a">Option A</label>
<input id="option-a" type="checkbox" name="option" value="a" />
<label for="option-b">Option B</label>
<input id="option-b" type="checkbox" name="option" value="b" />
<label class="va1" style="display: none">Option a price 1:<input id="a1" type="number" /></label><br>
<label class="va2" style="display: none">Option a price 2:<input id="a2" type="number"/></label><br>
<label class="va3" style="display: none">Option b price 1:<input id="a3" type="number" /></label><br>
<label class="va4" style="display: none">Option b price 2:<input id="a4" type="number" /></label><br>
<label>Result:</label><input id="a5" type="text" name="total_amt" />
然后实现一个 'change' 侦听器,它执行以下操作。
$('input[name="option"]').on('change', function(e){
const isChecked = $(e.target).is(":checked");
const optionValue = $(e.target).val();
if(optionValue == "a" && isChecked){
$(".va1, .va2").show();
$("#a1")[0].value = ""
$("#a2")[0].value = ""
}else if(optionValue == "b" && isChecked){
$(".va3, .va4").show();
$("#a3")[0].value = ""
$("#a4")[0].value = ""
} else if(optionValue == "a" && !isChecked){
$(".va1, .va2").hide();
$("#a1")[0].value = "";
$("#a2")[0].value = ""
} else if(optionValue == "b" && !isChecked){
$(".va3, .va4").hide();
$("#a3")[0].value = ""
$("#a4")[0].value = ""
}
});
然后为输入文本字段实现一个 focusout
事件。这将确保在输入数字更改时调用计算。
$('input[type=number]').on('focusout', calculate);
这是工作fiddlelink