Javascript 更改单选按钮时如何计算价格折扣和清除表单

Javascript 更改单选按钮时如何计算价格折扣和清除表单,javascript,html,Javascript,Html,1) 我试图用这个代码计算价格折扣,但它不起作用 2) 我想在单选按钮更改时清除表单。示例大小为M,仅当我更改大小时,填写数量输入中的数字,表格将变为清晰,或者在金额显示后,如果我更改大小,表格也将变为清晰 window.addEventListener(“加载”,()=>{ document.getElementById('calculate')。addEventListener('click',total) }); var total=函数(){ var s=编号(document.qu

1) 我试图用这个代码计算价格折扣,但它不起作用

2) 我想在单选按钮更改时清除表单。示例大小为M,仅当我更改大小时,填写数量输入中的数字,表格将变为清晰,或者在金额显示后,如果我更改大小,表格也将变为清晰

window.addEventListener(“加载”,()=>{
document.getElementById('calculate')。addEventListener('click',total)
}); 
var total=函数(){
var s=编号(document.querySelector('input[name=size]:checked')。值);
var q=编号(document.getElementById('qty')。值);
var m=document.querySelector('input[name=member]:checked')。值;
var结果;
如果(s&&q&&m){
如果(q>=1){
如果(s=='s'){
结果=s*q;
}如果(s=='M'){
结果=s*q;
}如果(s=='L'){
结果=s*q;
}否则{
结果=s*q;
}
结果-=m==“是”?结果*5/100:0;
}否则{
结果=”;
}
}否则{
结果=”;
}
document.getElementById('amount').innerHTML=result.toFixed(2);
}
常量clearForm=()=>{
document.getElementById('myForm').reset();
}

尺寸:
s
M
L
特大号

数量:

成员: 对 不

金额:$

算计 重置
您的计算工作正常。

您的代码中有一个问题:

document.getElementById('amount').innerHTML = result.toFixed(2); //Here with innerHTML
输入不能包含html。它们只能包含一个值。属性
innerHTML
不适合输入元素。您需要的是:

document.getElementById('amount').value = result.toFixed(2);
您必须设置金额的
值,而不是
innerHTML

我刚刚编辑了你的剪报。请注意我对您的代码所做的更改。很多东西都是不必要的。就像您的多个
if
语句检查
'S'
'M'
。。。因为最终它们都会导致相同的计算表达式

window.addEventListener(“加载”,()=>{
//清除大小更改时的文本框
document.querySelectorAll(“输入[name=size]”)。forEach(输入=>{
input.addEventListener('change',()=>{
ClearTextBox();
});
});
}); 
var computeTotal=()=>
{
var s=document.querySelector('input[name=size]:checked')。值;
var q=document.getElementById('qty').value;
var m=document.querySelector('input[name=member]:checked')。值;
var result;//初始化为空字符串
如果(s&&q&&m&&q>=1){
结果=s*q;
结果-=m==“是”?结果*5/100:0;
}
//将innerHTML更改为value
document.getElementById('amount')。value=result==undefined?“:result.toFixed(2);
}
var cleartextbox=()=>{
document.getElementById(“数量”).value=“”;
document.getElementById(“金额”).value=“”;
}
常量clearForm=()=>{
document.getElementById('myForm').reset();
}

成员:
对
不

尺寸: s M L 特大号

数量:

金额:$

算计 重置
您的计算工作正常。

您的代码中有一个问题:

document.getElementById('amount').innerHTML = result.toFixed(2); //Here with innerHTML
输入不能包含html。它们只能包含一个值。属性
innerHTML
不适合输入元素。您需要的是:

document.getElementById('amount').value = result.toFixed(2);
您必须设置金额的
值,而不是
innerHTML

我刚刚编辑了你的剪报。请注意我对您的代码所做的更改。很多东西都是不必要的。就像您的多个
if
语句检查
'S'
'M'
。。。因为最终它们都会导致相同的计算表达式

window.addEventListener(“加载”,()=>{
//清除大小更改时的文本框
document.querySelectorAll(“输入[name=size]”)。forEach(输入=>{
input.addEventListener('change',()=>{
ClearTextBox();
});
});
}); 
var computeTotal=()=>
{
var s=document.querySelector('input[name=size]:checked')。值;
var q=document.getElementById('qty').value;
var m=document.querySelector('input[name=member]:checked')。值;
var result;//初始化为空字符串
如果(s&&q&&m&&q>=1){
结果=s*q;
结果-=m==“是”?结果*5/100:0;
}
//将innerHTML更改为value
document.getElementById('amount')。value=result==undefined?“:result.toFixed(2);
}
var cleartextbox=()=>{
document.getElementById(“数量”).value=“”;
document.getElementById(“金额”).value=“”;
}
常量clearForm=()=>{
document.getElementById('myForm').reset();
}

成员:
对
不

尺寸: s M L 特大号

数量:

金额:$

算计 重置
单选按钮更改时,需要清除输入字段。找到下面的工作演示

window.addEventListener(“加载”,()=>{
document.getElementById('calculate')。addEventListener('click',total)
});
var total=函数(){
var s=编号(document.querySelector('input[name=size]:checked')。值);
var q=编号(document.getElementById('qty')。值);
var m=document.querySelector('input[name=member]:checked')。值;
var结果;
如果(s&&q&&m){
如果(q>=1){
如果(s=='s'){
结果=s*q;
}如果(s=='M'){
结果=s*q;
}如果(s=='L'){
结果=s*q;