切换语句javascript
switch statement javascript
本文关键字:javascript 语句 更新时间:2023-09-26
我已经搜索了很长一段时间,但我仍然不知道。我试图做一个简单的计算器为一个网站,根据材料的类型计算价格。我好像怎么也弄不动。它会一直步进到下面switch语句的默认情况。
<div class="form-group">
<div class="btn-group" data-toggle="buttons" class="col-lg-3 col-lg-offset-10">
<label class="btn btn-default **active**">
<input type="radio" name="inputWalls" id="inputWalls" value="block" checked>Block</label>
<label class="btn btn-default">
<input type="radio" name="inputWalls" id="inputWalls" value="brick">Brick </label>
<label class="btn btn-default">
<input type="radio" name="inputWalls" id="inputWalls" value="stone">Stone </label>
JAVASCRIPT function quote(){
var blockPrice = 0;
var brickPrice = 0;
var stonePrice = 0;
var myWidth = parseFloat(document.getElementById("widthInput").value);
var myHeight = parseFloat(document.getElementById("heightInput").value);
var radioButtons = document.getElementsByName("inputWalls");
var totalArea = myWidth + myHeight;
switch(radioButtons){
case "block" :
blockPrice = totalArea * 1.90;
alert(blockPrice);
break;
case "brick" :
{
brickPrice = totalArea * 3.80;
alert(brickPrice);
break;
}
case "stone" :
{
stonePrice = totalArea * 4.90;
alert(stonePrice);
break;
}
default :
alert('you have not selected material');
}
}
第一个警告标志:您真的不应该有多个具有相同ID的内容。
一旦你有了每个选项的唯一ID,你就可以检查每个元素的checked
属性。
<label class="btn btn-default **active**">
<input type="radio" name="inputWalls" id="inputWalls_block" value="block" checked>Block</label>
<label class="btn btn-default">
<input type="radio" name="inputWalls" id="inputWalls_brick" value="brick">Brick </label>
紧随其后:
document.getElementById("inputWalls_block").checked
显然,你可以把它包装起来,这样你就不必有大量重复的代码:
function getCheckedSection()
{
var sections=["block", "brick", "stone"];
for ( var i=0;i< sections.length; i++ )
{
if ( document.getElementById("inputWalls_"+sections[i]).checked )
{
return sections[i];
}
}
}
当然,这是JavaScript和你与DOM交互,你可以节省大量的时间和精力使用JQuery,但如果你试图弄清楚这些东西是如何工作的,没有一个支持库,这是有用的知识。
你可以在这个问题的答案中找到更多有用的东西。
在
var radioButtons = document.getElementsByName("inputWalls"); // nodeList
switch(radioButtons){
case "block" : // Woot, string !
// stuff
case "brick" :
....
radioButtons是一个带有DOM元素的nodeList,比较它和字符串的开关根本不起作用
还请注意,您对所有元素使用了相同的ID,这是无效的。
你真正想要的是选中的单选按钮的值
var radioButtons = document.querySelector('[name="inputWalls"]:checked').value;
querySelector
将让您轻松地针对选中的单选按钮,并获得它的值
您需要获得选中的radioButton,如下所示:
document.querySelector("inputWalls:checked").value;
代替document.getElementsByName("inputWalls");
相关文章:
- Google Chrome 不会执行所有 JavaScript 语句
- 嵌套于..在JavaScript语句中
- Javascript语句的哪一部分是字面意思
- 什么'这个javascript语句错了
- 我的 javascript 语句不会运行其 else 语句,即使未选中复选框
- 可以在Applescript中执行内联JavaScript语句
- 如果不是 javascript 语句
- 关于字符串串联的令人困惑的 JavaScript 语句
- 将 php 变量添加到从之前转换为 php 的 html/javascript 语句中
- 是否可以从文档中的输入字段执行简单的 javascript 语句
- 增强的 Javascript 语句使用安全
- 将 html 表单值视为 JavaScript 语句
- 添加 JavaScript 语句
- Javascript 语句执行顺序
- jsp 命令<%=%> 在 Javascript 语句中使用时被忽略,在 taglib 标记语句内
- 为什么当我执行这个 JavaScript 语句来创建一个新的 Number 对象(使用 new 运算符)时,Chrome
- 下面的javascript语句是如何评估的
- 使用highcharts更改javascript语句中的marginLeft和marginRight
- 有没有合适的方法将特定的javascript语句翻译成java
- 解释以下 JavaScript 语句