我已经有了这个,但不知道如何进一步。 当我选中2个radiobuttons上面的复选框时,它应该看看是否被选中,然后当我检查1个radiobutton时,它应该检查一个并将值加到总值中。
<form name="CalorieForm">
<input type="checkbox" name="gf"> Groente en fruit <br />
  <input type="radio" name="gf1" value="60"> Appel (60 kcal per appel) <br />
  <input type="radio" name="gf2"value="26"> Paprika (26 kcal per paprika) <br />
<br>
<input type="checkbox" name="bpp"> Brood, pasta en peelvruchten <br />
  <input type="radio" name="bpp1" value="111"> Zilvervliesrijst (111 kcal per 100 gram) <br />
  <input type="radio" name="bpp2" value="24"> Sperziebonen(24 kcal per 100 gram)<br />
<br>
<input type="checkbox" name="zvvev"> Zuivel, vlees, vis, ei en vleesvervangers <br />
  <input type="radio" name="zvvev1" value="118"> Kabeljauwfilet (118 kcal per 100 gram) <br />
  <input type="radio" name="zvvev2" value="115"> Biefstuk (115 kcal per 100 gram) <br />
<br>
<input type="checkbox" name="vo"> Vetten en olie <br />
  <input type="radio" name="vo1" value="108"> Olie (108 kcal per eetlepel) <br />
  <input type="radio" name="vo2" value="90"> Halvarine (90 kcal per 25 gram) <br />
<br>
<input type="checkbox" name="v"> Vocht <br />
  <input type="radio" name="v1" value="0"> Thee (0 kcal per 0.5 liter) <br />
  <input type="radio" name="v2" value="0.6"> Coca cola light (0.6 kcal per blikje) <br />
<br>
<input type="button" value="Bereken de calorieën" name="totaal" onClick="BerekeningCalorie()"> <input type="reset" value="Reset" />
<br>
<br>
Aantal calorieën: <input type="text" name="Calorie" size="20"><br />
</form>
这是我的表格^ 而这里是我未完成的javascript V
function berekeningCalorie() {
var totaal = 0
if document.getElementByName("gf").checked {
if document.getElementByName("gf1").checked
totaal += totaal + document.CalorieForm.gf1.value
if document.getElementByName("gf2").checked
totaal += totaal + document.CalorieForm.gf2.value
}
if document.getElementByName("bpp").checked {
if document.getElementByName("bpp1").checked
totaal += totaal + document.CalorieForm.bpp1.value
if document.getElementByName("bpp2").checked
totaal += totaal + document.CalorieForm.bpp2.value
}
}
我问我的老师该怎么做,她说它应该是这样的(这是我记得她给我看的东西)
有人可以为我解决这个问题吗?我不知道如何继续下去。 (javascript noob)。
答案 0 :(得分:0)
这里的代码存在一些非常基本的问题。
gf1
或gf2
(此时您可以选择两者)。你按照他们的名字来做,所以两者都必须是gf1
onclick
是大写的,但您的JS不是(BerekeningCalorie()
vs berekeningCalorie
if
条件使用括号。getElementByName
不是方法。 getElementByNames
(复数)是,但返回元素集合。您可以向他们提供所有id
个属性并使用getElementById
,或者只使用document.formName.inputName
(就像您为document.CalorieForm.gf1
所做的那样)total = total + addition
或total += addition
; 您的当前(total += total + addition
)是总数的两倍,然后添加额外的数字。 parseInt
以数字方式添加它:[name="Calorie"]
输入的内容。您可以在此处看到已修复:http://jsfiddle.net/rgthree/4sHQg/
HTML:
<form name="CalorieForm">
<input type="checkbox" name="gf"> Groente en fruit <br />
<input type="radio" name="gf1" value="60"> Appel (60 kcal per appel) <br />
<input type="radio" name="gf1" value="26"> Paprika (26 kcal per paprika) <br />
<br>
<input type="checkbox" name="bpp"> Brood, pasta en peelvruchten <br />
<input type="radio" name="bpp1" value="111"> Zilvervliesrijst (111 kcal per 100 gram) <br />
<input type="radio" name="bpp1" value="24"> Sperziebonen(24 kcal per 100 gram)<br />
<br><br>
<input type="button" value="Bereken de calorieën" name="totaal" onClick="BerekeningCalorie()"> <input type="reset" value="Reset" />
<br><br>
Aantal calorieën: <input type="text" name="Calorie" size="20">
</form>
使用Javascript:
function BerekeningCalorie() {
var totaal = 0;
// If our gf checkbox is checked, then get the value of the radio buttons.
// Each have the name 'gf1' so it doesn't matter which is checked.
// In case neither is checked, we default to 0.
// Then we use parseInt to calulate the number and add it to totaal
// otherwise, we would be concatenating two strings, not adding two numbers
if(document.CalorieForm.gf.checked)
totaal += parseInt(document.CalorieForm.gf1.value || 0, 10);
// Do the same for the next, etc.
if(document.CalorieForm.bpp.checked)
totaal += parseInt(document.CalorieForm.bpp1.value || 0, 10);
document.CalorieForm.Calorie.value = totaal;
}