合并2个脚本

Combine 2 scripts

本文关键字:脚本 2个 合并      更新时间:2023-09-26

我有这两个脚本,但我不能把它们放在一起工作

function start()
{
    var f=document.getElementById("hipaya");
    var s=document.getElementById("paypala");
    var l=document.getElementById("skrilla");
    f.style.display = 'block';
    s.style.display = 'none';
    l.style.display = 'none';
}

function disp_div() {
    var word = document.myform.mycred_buy.selectedIndex;
    var selected_text = document.myform.mycred_buy.options[word].text;
    var f=document.getElementById("hipaya");
    var s=document.getElementById("paypala");
    var l=document.getElementById("skrilla");
    if (selected_text == 'HiPay'){
        f.style.display = 'block';
        s.style.display = 'none';
        l.style.display = 'none';
    }else if (selected_text == 'PayPal ou Cartão Crédito/Débito'){
        f.style.display = 'none';
        s.style.display = 'block';
        l.style.display = 'none';
    }else if (selected_text == "Skrill (Moneybookers)"){
        f.style.display = 'none';
        s.style.display = 'none';
        l.style.display = 'block';
    }
}     
window.onload = function() {
    var calculSumToString = function calculSumToString() {
        totalField.value = (qtyField.value * 0.1).toFixed(2) + " €";
    };
    var totalField = document.getElementById('total_price');
    var qtyField = document.getElementById('amount');
    qtyField.onkeyup = calculSumToString;
    itemPriceField.onkeyup = calculSumToString;
};

有人知道为什么我不能把它们放在一起吗?只有一个有效。如果我把第一个放在最后,它可以工作,但第二个在中停止工作

因为itemPriceField将是未定义的(我认为这是该变量的旧名称)。

我推测线路:

itemPriceField.onkeyup = calculSumToString;

应为:

totalField.onkeyup = calculSumToString;

此外,calculSumToString的函数定义不正确,应该是:

var calculSumToString = function() {
    totalField.value = (qtyField.value * 0.1).toFixed(2) + " €";
};

至于为什么当顺序相反时javascript根本不起作用,是因为函数求值将在第一个错误时停止(当试图访问undefined的属性或错误的函数语法时)。

jsLinters可以为您解决这个问题,并可以作为捆绑和缩小步骤的一部分包含在内——如果您有兴趣创建健壮的javasscript(除了JS的单元测试框架之外),我建议您快速搜索这些领域。