Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript将数字变量添加到不同函数中_Javascript_Html_Forms - Fatal编程技术网

JavaScript将数字变量添加到不同函数中

JavaScript将数字变量添加到不同函数中,javascript,html,forms,Javascript,Html,Forms,在JavaScript中,我想添加两个数字变量:film\u cost和delivery\u cost,并将它们显示在警报框中。这些变量位于两个不同的函数中 function getcost() { var cost = document.getElementsByName("format"); var len = cost.length for (i=0;i<len;i++) { if(cost[i].checked) {

在JavaScript中,我想添加两个数字变量:
film\u cost
delivery\u cost
,并将它们显示在警报框中。这些变量位于两个不同的函数中

function getcost()
{
    var cost = document.getElementsByName("format");
    var len = cost.length

    for (i=0;i<len;i++)
    {
        if(cost[i].checked)
        {
            document.getElementById("data2").innerHTML = '£'+cost[i].value;
            var film_cost = cost[i].value;
        }
    }
}

function add_delivery()
{
    var delivery_cost = document.getElementsByName("delivery");
    var len = delivery_cost.length

    for (i=0;i<len;i++)
    {
        if(delivery_cost[i].checked)
        {
            var dvd_delivery = delivery_cost[i].value;
            var total = dvd_delivery+film_cost;
            alert(total);   
        }
    }
}
函数getcost()
{
var成本=document.getElementsByName(“格式”);
var len=成本。长度

对于(i=0;i第二个函数中未定义胶片成本。

第二个函数中未定义胶片成本。

您需要在add\u delivery()函数中访问胶片成本变量

我建议您这样做:

function getcost()
{
    var cost = document.getElementsByName("format");
    var len = cost.length;
    var film_cost = 0;

    for (i=0;i<len;i++)
    {
        if(cost[i].checked)
        {
            document.getElementById("data2").innerHTML = '£'+cost[i].value;
            film_cost = parseFloat(cost[i].value);
        }
    }
    return film_cost;
}

function add_delivery()
{
    var delivery_cost = document.getElementsByName("delivery");
    var len = delivery_cost.length;

    for (i=0;i<len;i++)
    {
        if(delivery_cost[i].checked)
        {
            var dvd_delivery = parseFloat(delivery_cost[i].value);
            var total = dvd_delivery + getcost();
            alert(total);   
        }
    }
}
函数getcost()
{
var成本=document.getElementsByName(“格式”);
var len=成本。长度;
var薄膜成本=0;

对于(i=0;i您需要在add_delivery()函数中访问film_cost变量

我建议您这样做:

function getcost()
{
    var cost = document.getElementsByName("format");
    var len = cost.length;
    var film_cost = 0;

    for (i=0;i<len;i++)
    {
        if(cost[i].checked)
        {
            document.getElementById("data2").innerHTML = '£'+cost[i].value;
            film_cost = parseFloat(cost[i].value);
        }
    }
    return film_cost;
}

function add_delivery()
{
    var delivery_cost = document.getElementsByName("delivery");
    var len = delivery_cost.length;

    for (i=0;i<len;i++)
    {
        if(delivery_cost[i].checked)
        {
            var dvd_delivery = parseFloat(delivery_cost[i].value);
            var total = dvd_delivery + getcost();
            alert(total);   
        }
    }
}
函数getcost()
{
var成本=document.getElementsByName(“格式”);
var len=成本。长度;
var薄膜成本=0;

对于(i=0;i变量film_cost的范围仅在第一个函数内;因此,调用第二个函数时,film_cost已经“死亡”

解决此问题更简单的方法是:

var film_cost;

function getcost()
{
var cost = document.getElementsByName("format");
var len = cost.length

for (i=0;i<len;i++)
{
    if(cost[i].checked)
    {
        document.getElementById("data2").innerHTML = '£'+cost[i].value;
        film_cost = cost[i].value;
    }
}
}

function add_delivery()
{
var delivery_cost = document.getElementsByName("delivery");
var len = delivery_cost.length

for (i=0;i<len;i++)
{
    if(delivery_cost[i].checked)
    {
        var dvd_delivery = delivery_cost[i].value;
        var total = dvd_delivery+film_cost;
        alert(total);   
    }
}
}
var薄膜成本;
函数getcost()
{
var成本=document.getElementsByName(“格式”);
var len=成本。长度

对于(i=0;i变量film_cost的范围仅在第一个函数内;因此,调用第二个函数时,film_cost已经“死亡”

解决此问题更简单的方法是:

var film_cost;

function getcost()
{
var cost = document.getElementsByName("format");
var len = cost.length

for (i=0;i<len;i++)
{
    if(cost[i].checked)
    {
        document.getElementById("data2").innerHTML = '£'+cost[i].value;
        film_cost = cost[i].value;
    }
}
}

function add_delivery()
{
var delivery_cost = document.getElementsByName("delivery");
var len = delivery_cost.length

for (i=0;i<len;i++)
{
    if(delivery_cost[i].checked)
    {
        var dvd_delivery = delivery_cost[i].value;
        var total = dvd_delivery+film_cost;
        alert(total);   
    }
}
}
var薄膜成本;
函数getcost()
{
var成本=document.getElementsByName(“格式”);
var len=成本。长度

对于(i=0;这里有一些问题,但根本问题是
film\u cost
仅在
get\u cost()中定义
是否要使用多个成本?看起来,
格式
是html中的一组复选框…如果是,您是要合计电影成本还是只使用第一个?格式是一组单选按钮,就像交付一样。我希望将所选值加在一起,创建一个包含所选电影和交付的合计值。在在这种情况下,可以进行的优化是直接选择单选按钮,而不是通过使用伪选择器(而不是使用
getElementsByName
)循环所有单选按钮。请尝试
document.querySelector('input[name=format][checked]”)
仅获取选中的元素这里有一些问题,但根本问题是
film\u cost
仅在
get\u cost()中定义
是否要使用多个成本?看起来,
格式
是html中的一组复选框…如果是,您是要合计电影成本还是只使用第一个?格式是一组单选按钮,就像交付一样。我希望将所选值加在一起,创建一个包含所选电影和交付的合计值。在在这种情况下,可以进行的优化是直接选择单选按钮,而不是通过使用伪选择器(而不是使用
getElementsByName
)循环所有单选按钮。请尝试
document.querySelector('input[name=format][checked]”)
仅获取选中的元素谢谢你的帮助变量现在出现在警告框中,但是它们不会相加而是合并在一起。我现在已经添加了HTML。很好的调用!检查我的编辑。你需要调用
parseFloat()
s,因为
交付成本[I].value
是一个字符串!我确实认为这与现在已排序的数据类型有关。谢谢:)我一定会按照您的建议重命名我的函数。没问题!调用很好,这是一个好习惯。:)感谢您的帮助,该变量现在出现在警报框中,但它们不是相加而是合并在一起。我现在已经添加了HTML。很好的调用!检查我的编辑。您需要使用
中的
值调用
parseFloat()
,因为
交付成本[I].value
是一个字符串!我确实认为这与现在已排序的数据类型有关。谢谢:)我一定会按照您的建议重命名我的函数。没问题!调用很好,这是一个好习惯。:)