条件javascript公式取决于checkbox是否被选中
Conditional javascript formula depending on whether checkbox is checked
我已经尝试了一千种不同的教程,我很确定我的代码是正确的,但我不能得到这个工作。我正在尝试创建一个基于用户选择"是"还是"否"具有不同值的计算。
var people = document.getElementById('how-many');
people.onkeyup = function() {
guests = people.value;
if (document.getElementById('leftoversyes').checked) {
feeds = people.value * 2;
} else {
feeds = people.value * 1.5;
}
document.getElementById('turkey-number').innerHTML = guests;
document.getElementById('turkey-weight').innerHTML = feeds;
}
<form id="calculator">
<p>
<label for="how-many">How many people do you plan to feed?</label>
<br />
<input type="text" maxlength="3" name="how-many" id="how-many" />
</p>
<p>
<label for="leftovers">Would you like to have leftovers?</label>
<br />
<input type="checkbox" name="leftoversyes" value="Yes" id="leftoversyes" />Yes
<input type="checkbox" name="leftoversno" value="No" id="leftoversno" />No</p>
<p>
<input type="button" value="Calculate" id="calculate" class="btn" />
<input type="reset" value="clear" id="clearcalculator" />
</p>
</form>
<p>A <span id="turkey-weight"></span>-pound turkey will feed <span id="turkey-number"></span> guests<span id="turkey-leftovers"></span>.</p>
它可以工作,因为它会给我1.5的乘法,但我做什么都不能让它给我2的乘法。
提前感谢您的帮助!
当<input type="checkbox" name="leftoversyes" value="Yes" id="leftoversyes" />
的值发生变化时,需要添加另一个侦听器
document.getElementById('leftoversyes').onchange = function() {
var guests = document.getElementById('how-many').value;
var feeds;
if (document.getElementById('leftoversyes').checked){
feeds = guests * 2;
} else {
feeds = guests * 1.5;
}
document.getElementById('turkey-number').innerHTML = guests;
document.getElementById('turkey-weight').innerHTML = feeds;
};
与您编写的原始处理程序相同,因此我们将其重构为:
function calculate() {
var guests = document.getElementById('how-many').value;
var feeds;
if (document.getElementById('leftoversyes').checked){
feeds = guests * 2;
} else {
feeds = guests * 1.5;
}
document.getElementById('turkey-number').innerHTML = guests;
document.getElementById('turkey-weight').innerHTML = feeds;
}
document.getElementById('how-many').onkeyup = calculate;
document.getElementById('leftoversyes').onchange = calculate;
声明feeds
变量,使用#leftovers
元素的onchange
事件对#people
元素调用与onkeyup
相同的函数
var people = document.getElementById('how-many');
var leftovers = document.getElementById('leftoversyes');
function feeder() {
var feeds;
guests = people.value;
if (document.getElementById('leftoversyes').checked){
feeds = people.value * 2;
} else {
feeds = people.value * 1.5;
}
document.getElementById('turkey-number').innerHTML = guests;
document.getElementById('turkey-weight').innerHTML = feeds;
}
people.onkeyup = feeder;
leftovers.onchange = feeder;
<form id="calculator">
<p>
<label for="how-many">How many people do you plan to feed?</label><br />
<input type="text" maxlength="3" name="how-many" id="how-many" />
</p>
<p>
<label for="leftovers">Would you like to have leftovers?</label><br />
<input type="checkbox" name="leftoversyes" value="Yes" id="leftoversyes" /> Yes <input type="checkbox" name="leftoversno" value="No" id="leftoversno" /> No</p>
<p><input type="button" value="Calculate" id="calculate" class="btn" />
<input type="reset" value="clear" id="clearcalculator" /></p>
</form>
<p>A <span id="turkey-weight"></span>-pound turkey will feed <span id="turkey-number"></span> guests<span id="turkey-leftovers"></span>.</p>
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 如何检测是否有溢出
- jQuery中是否内置了任何字符串格式化函数
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 测试索引值是否等于某个数字的倍数
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 检查是否在带有Javascript的GridView的一行中选中了asp Checkbox
- 是否保证 document.querySelectorAll(“input[type=checkbox”) 的结果数组的
- 条件javascript公式取决于checkbox是否被选中
- 使用JavaScript验证checkbox checked属性是否为空
- 使用jQuery检查checkbox checked属性是否为空
- 是否可以调用两个函数,如果ext.form.checkbox被选中?或者为什么我在openlayers中的层不能重新排序
- 如何确定是否选中了DOJO Checkbox
- 是否选中了 Html.CheckBox