javascript if语句语法(需要帮助)
我已经看了前面的问题,但没有看到我能理解的答案(它们都比我的复杂) 我正在使用旧手册和15年前使用脚本语言的经验引导一些javascript 通过修改一个教程文件,我有了这段代码,它工作得很好javascript if语句语法(需要帮助),javascript,Javascript,我已经看了前面的问题,但没有看到我能理解的答案(它们都比我的复杂) 我正在使用旧手册和15年前使用脚本语言的经验引导一些javascript 通过修改一个教程文件,我有了这段代码,它工作得很好 var oemdc1 = parseInt(document.getElementById("vehicle_oem_draw").value); var oemdc2 = parseInt(document.getElementById("vehicle_added_draw").val
var oemdc1 = parseInt(document.getElementById("vehicle_oem_draw").value);
var oemdc2 = parseInt(document.getElementById("vehicle_added_draw").value);
var oemdc3 = parseInt(document.getElementById("new_vehicle_draw").value);
var oemdc4 = parseInt(document.getElementById("include_prism_draw").value);
var total_current_draw = document.getElementById("total_hourly_current_draw");
total_current_draw.value = oemdc1 + oemdc2 + oemdc3
但是我需要添加这段代码,这样如果用户单击一个单选按钮(include_prism_draw),他们就会得到一个不同的总数
if (oemdc4 == 1)
total_current_draw.value = oemdc1 + oemdc2 + oemdc3 + prism_cd;
else
total_current_draw.value = oemdc1 + oemdc2 + oemdc3;
但无论单选按钮值是“1”还是“0”,我都会在计算中得到附加值(prism_cd)。即使两个按钮都没有点击,我仍然会得到附加值
所以我想我需要一些大括号或圆括号之类的东西
我在文档顶部声明了var prism_cd,它被插入到结果字段中,因此它在这个意义上工作
非常感谢您的帮助
(好的,找到了编辑链接,他们应该让它更突出)
我剪切/粘贴了@Adam的代码,不管按钮的状态如何,我仍然得到了prism_cd。(prism_cd是一个我设置为var的数字,它显示准确,但即使我不需要它。)
按钮代码如下。也许有一个简单的错误
Include PRISM 1.5 mA current draw in calculation?
<input type="radio" name="include_prism_draw" id="include_prism_draw" value="1" /> Yes
<input type="radio" name="include_prism_draw" id="include_prism_draw" value="0" /> No
计算中是否包括棱镜1.5 mA电流消耗?
对
不
为了回答关于VAR的另一个问题,它们来自用户操作的弹出窗口,脚本添加弹出窗口中的值,并准确地执行此操作,直到我使用按钮添加“是/否”代码
如果用户想要添加prism current draw(prism_cd),他们会单击yes(是),然后添加它,但正如我所说的,只要脚本中有代码,就会添加它。在这一点上,我没有任何一个按钮设置为检查
脚本的其余部分可以准确地工作,因为我可以使用从中移植的电子表格进行测试
我还有更多的事情要做,但它们大多基于这种类型的“if/else set a var”逻辑,所以一旦我能完成这项工作,我希望我能很好地去做
我非常感谢你的答复
我不确定你的问题是什么。但是,if..else语法的最佳实践是将两个块都放在大括号中
var oemdc1 = parseInt(document.getElementById("vehicle_oem_draw").value);
var oemdc2 = parseInt(document.getElementById("vehicle_added_draw").value);
var oemdc3 = parseInt(document.getElementById("new_vehicle_draw").value);
var oemdc4 = parseInt(document.getElementById("include_prism_draw").value);
var total_current_draw = document.getElementById("total_hourly_current_draw");
if (oemdc4 === 1){
total_current_draw.value = oemdc1 + oemdc2 + oemdc3 + prism_cd;
} else {
total_current_draw.value = oemdc1 + oemdc2 + oemdc3;
}
我不确定你的问题是什么。但是,if..else语法的最佳实践是将两个块都放在大括号中
var oemdc1 = parseInt(document.getElementById("vehicle_oem_draw").value);
var oemdc2 = parseInt(document.getElementById("vehicle_added_draw").value);
var oemdc3 = parseInt(document.getElementById("new_vehicle_draw").value);
var oemdc4 = parseInt(document.getElementById("include_prism_draw").value);
var total_current_draw = document.getElementById("total_hourly_current_draw");
if (oemdc4 === 1){
total_current_draw.value = oemdc1 + oemdc2 + oemdc3 + prism_cd;
} else {
total_current_draw.value = oemdc1 + oemdc2 + oemdc3;
}
看看这个问题:
仅通过执行以下操作无法获取多个关联单选按钮的值
document.getElementById(ID).value;
再看看这个问题,为什么不应该为多个HTML元素提供相同的id:
现在为您的问题提供一个可能的简单解决方案(根据第一个链接的解决方案):
您可以编写一个函数,返回两个单选按钮的值:
function getPrismDrawValue()
{
// predefined result, if no radio button is checked.
// in this case result will be 0 -> "No"
var result = 0;
// get a list of all HTML-elements with the name 'include_prism_draw'
var radios = document.getElementsByName('include_prism_draw');
// loop through all this elements and check if one of them is checked
for (var i = 0; i < radios.length; i++)
{
if (radios[i].checked)
{
// get the value of the checked radio button
result = parseInt(radios[i].value);
// only one radio can be logically checked, don't check the rest
break;
}
}
return result;
}
编辑以回答新问题: 现在你的问题是:
var oemdc4 = parseInt(document.getElementById("prism_draw").value);
如果将1.5传递给parseInt()-函数,它将返回1
使用函数parseFloat()来获得预期结果
var oemdc4 = parseFloat(document.getElementById("prism_draw").value);
看看这个问题:
仅通过执行以下操作无法获取多个关联单选按钮的值
document.getElementById(ID).value;
再看看这个问题,为什么不应该为多个HTML元素提供相同的id:
现在为您的问题提供一个可能的简单解决方案(根据第一个链接的解决方案):
您可以编写一个函数,返回两个单选按钮的值:
function getPrismDrawValue()
{
// predefined result, if no radio button is checked.
// in this case result will be 0 -> "No"
var result = 0;
// get a list of all HTML-elements with the name 'include_prism_draw'
var radios = document.getElementsByName('include_prism_draw');
// loop through all this elements and check if one of them is checked
for (var i = 0; i < radios.length; i++)
{
if (radios[i].checked)
{
// get the value of the checked radio button
result = parseInt(radios[i].value);
// only one radio can be logically checked, don't check the rest
break;
}
}
return result;
}
编辑以回答新问题: 现在你的问题是:
var oemdc4 = parseInt(document.getElementById("prism_draw").value);
如果将1.5传递给parseInt()-函数,它将返回1
使用函数parseFloat()来获得预期结果
var oemdc4 = parseFloat(document.getElementById("prism_draw").value);
prism\u cd
应该是什么?include\u prism\u draw是哪种类型的HTML元素?我不理解这个问题。你甚至有一个点击处理程序吗?不要在else
前面加分号。PHPPglue和SashaP是怎么说的。请使用包含…vehicle…
ID的HTML部分更新问题。什么是prism\u cd
应该是什么?哪种类型的HTML元素是include\u prism\u draw
?我不理解这个问题。你甚至有一个点击处理程序吗?不要在else
前面加分号。PHPPglue和SashaP是怎么说的。请使用包含…vehicle…
ID的HTML部分更新问题。我从@Adam添加了代码,无论按钮的状态如何,仍然可以获得prism_cd。(prism_cd是一个我设置为var的数字,它准确地显示出来,但即使我不需要它。)按钮代码如下。计算中可能存在一个简单的错误,包括棱镜1.5 mA电流消耗?是的,不,我添加了@Adam的代码,不管按钮的状态如何,我仍然会得到prism_cd。(prism_cd是一个我设置为var的数字,它准确地显示出来,但即使我不需要它。)按钮代码如下。计算中可能存在一个简单的错误,包括棱镜1.5 mA电流消耗?是不是