Java脚本函数未定义JSP错误

Java Script Function is not Defined JSP Error

本文关键字:JSP 错误 未定义 函数 脚本 Java      更新时间:2023-09-26

在Javascript/HTML页面上工作时,我一直得到"函数未定义"错误。

编辑:更新链接: http://jsfiddle.net/Gmyag/134/

编辑:更新链接 http://puu.sh/8CxnC/b954c1c803.html是我正在使用的实际链接,可能会证明联赛比小提琴更有用。

HTML:

deliveryIdentification is the one giving issues. Code too long.
Had to add code block since I added a jsfiddle.
Sorry for not simplifying the example, but this is the first time I've seen this.

如果我把所有的东西放在一个单独的脚本块其他人似乎工作,但与addDelRefOrder(),因为我需要声明var deliveryDummy[]之前,它抛出"ReferenceError: deliveryDummy是未定义的。如果我把deliveryDummy[]放在同一个块中,它会显示"ReferenceError:addDelRefOrder()未定义"。

至于为什么结构如此奇怪,这是由于它是一个。jsp文件。我刚刚开始学习JSP,并在此过程中学到了很多东西。

任何和所有的帮助,如何解决这个问题是非常感谢。

您在函数内部定义函数 ?

function renderList()
{
    // clean the list:
    while (list.firstChild) {
        list.removeChild(list.firstChild);
    }
    // Recreate li
    for(var i = 0; i < deliveryDummy.length; i++) {
        var entry = document.createElement("li");
        entry.appendChild(document.createTextNode(deliveryDummy[i]));
        var removeButton = document.createElement('button');
        removeButton.appendChild(document.createTextNode("Remove"));
        removeButton.setAttribute('onClick','removeName('+i+')');
        entry.appendChild(removeButton);
        list.appendChild(entry);
    }
    function removeDeliver(deliverIndex){
        deliverDummy.splice(deliverIndex,1);
        // Array changed to re-render List
        renderList();
    }
    function getDeliver() {
    return deliverDummy;
    }
}

你有renderList(),在这里面还有两个函数。这是Javascript的错误结构。创建独立函数

我对jsp也不是很熟悉,但是你的HTML标签有点乱。确保html标签嵌套正确

在你的javascript中,我注意到你在创建函数之前已经调用了函数。首先修复这个问题,看看它是否解决了你的问题。

window.onload=function addDelRefOrder()
{
    var deliveryVal = document.getElementById("deliveryIdentification").value;
    // Add to array
    deliveryDummy.push(deliveryVal); 
    // Array changed, Re-Render
    renderList();         /// <==== HERE
}
window.onload=function renderList() // <====== Function created here.
{
    // clean the list:
    while (list.firstChild) {
        list.removeChild(list.firstChild);
    }
    // Recreate li
    for(var i = 0; i < deliveryDummy.length; i++) {
        var entry = document.createElement("li");
        entry.appendChild(document.createTextNode(deliveryDummy[i]));
        var removeButton = document.createElement('button');
        removeButton.appendChild(document.createTextNode("Remove"));
        removeButton.setAttribute('onClick','removeName('+i+')');
        entry.appendChild(removeButton);
        list.appendChild(entry);
    }
}