Javascript 函数根本不触发

问题描述 投票:0回答:1

我不是 JavaScript 专家,但我偶尔会使用它。我将此解决方案按原样复制到 HTML 页面中并尝试运行它。它不需要服务器端的任何东西。 由于某种原因,它不会通过单击按钮来触发该功能。
我花了几个小时寻找解决方案。没有任何效果。

var decode_table = new Array();
decode_table[0] = new Array();
decode_table[1] = new Array();
decode_table[2] = new Array();

decode_table[0]["Z"] = 0;
decode_table[0]["Y"] = 1;
decode_table[0]["X"] = 2;
decode_table[0]["W"] = 3;
decode_table[0]["3"] = 4;
decode_table[0]["2"] = 5;
decode_table[0]["1"] = 6;
decode_table[0]["0"] = 7;
decode_table[0]["7"] = 8;
decode_table[0]["6"] = 9;

decode_table[1]["C3"] = 0;
decode_table[1]["CN"] = 1;
decode_table[1]["Cx"] = 2;
decode_table[1]["Ch"] = 3;
decode_table[1]["D3"] = 4;
decode_table[1]["DN"] = 5;
decode_table[1]["Dx"] = 6;
decode_table[1]["Dh"] = 7;
decode_table[1]["E3"] = 8;
decode_table[1]["EN"] = 9;

decode_table[2]["n"] = 0;
decode_table[2]["j"] = 1;
decode_table[2]["f"] = 2;
decode_table[2]["b"] = 3;
decode_table[2]["D"] = 4;
decode_table[2]["z"] = 5;
decode_table[2]["v"] = 6;
decode_table[2]["r"] = 7;
decode_table[2]["T"] = 8;
decode_table[2]["P"] = 9;



function translate(raw) {

    window.alert("Translate");

    sections = new Array();
    sections = raw.split(".");

    if (validateBarcode(translateCueCatInput(sections[3])))
        document.forms[0].checkdigit.value = "Valid";
    else
        document.forms[0].checkdigit.value = "Invalid";

    document.forms[0].translated.value = translateCueCatInput(raw);
    document.forms[0].numberonly.value = translateCueCatInput(sections[3]);
    document.forms[0].tokenized.value = tokenizeCueCatInput(raw);
}
function validateBarcode(barcode) {
    barcode = barcode.toString();

    oddSum = parseInt(barcode.charAt(0)) + parseInt(barcode.charAt(2)) + parseInt(barcode.charAt(4)) + parseInt(barcode.charAt(6)) + parseInt(barcode.charAt(8)) + parseInt(barcode.charAt(10));
    evenSum = parseInt(barcode.charAt(1)) + parseInt(barcode.charAt(3)) + parseInt(barcode.charAt(5)) + parseInt(barcode.charAt(7)) + parseInt(barcode.charAt(9));

    n = (oddSum * 3) + evenSum;
    x = n % 10;
    if (x == 0)
        x = 10;

    checkDigit = 10 - x;

    if (parseInt(barcode.charAt(11)) != checkDigit)
        return false;
    else
        return true;
}
function translateCueCatInput(raw) {
    var output = "";
    var charcount = 0;
    var clean = "";

    for (n = 0; n < raw.length; n++) {
        if (raw.charAt(n) != ".")
            clean += raw.charAt(n).toString();
    }

    for (i = 0; i < clean.length; i++) {
        if (decode_table[(charcount + 1) % 3][clean.charAt(i).toString()] != undefined) {
            output += decode_table[(charcount + 1) % 3][clean.charAt(i).toString()];
            charcount++;
        }
        else if (decode_table[(charcount + 1) % 3][clean.charAt(i).toString() + clean.charAt(i + 1).toString()] != undefined) {
            output += decode_table[(charcount + 1) % 3][clean.charAt(i).toString() + clean.charAt(i + 1).toString()];
            charcount++;
            i++;
        }


    }
    return (output);
}
function tokenizeCueCatInput(raw) {
    var charcount = 0;
    var clean = "";
    var base = "";

    for (n = 0; n < raw.length; n++) {
        if (raw.charAt(n) != ".")
            clean += raw.charAt(n).toString();
    }

    for (i = 0; i < clean.length; i++) {
        if (decode_table[(charcount + 1) % 3][clean.charAt(i).toString()] != undefined) {
            base += " " + clean.charAt(i).toString();
            charcount++;
        }
        else if (decode_table[(charcount + 1) % 3][clean.charAt(i).toString() + clean.charAt(i + 1).toString()] != undefined) {
            base += " " + clean.charAt(i).toString() + clean.charAt(i + 1).toString();
            charcount++;
            i++;
        }
    }
    return (base);
}

我使用了不同版本的 onClick 参考。 我已在该功能的顶部设置了警报。 我已经在页面上移动了脚本......顶部、底部、头部等。 我已经指定了数组的变量类型。 我已经给按钮添加了一个 id。 我已经向按钮添加了一个类。 我使用 script 标签添加了不同的 JavaScript 声明。

javascript arrays onclick
1个回答
-1
投票

一般来说,有两种简单的方法可以从 HTML 按钮调用函数。

  • 从 HTML 元素上的
    onclick
    属性直接调用函数
  • 通过添加事件侦听器从元素引用:
    element.addEventListener('click', function(){ ... })

function run(){
  console.log('clicked!')
}

document.querySelector('#second-btn')
  .addEventListener('click', run);
<button type="button" onclick="run()">click me #1</button>

<button type="button" id="second-btn">click me #2</button>

© www.soinside.com 2019 - 2024. All rights reserved.