在处理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并且一直在学习很多东西。
非常感谢任何和所有有关如何解决此问题的帮助。
答案 0 :(得分:2)
您在函数中定义函数?这里
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()并且在这两个funcs里面。这是Javascript的错误结构。 制作单独的功能。
答案 1 :(得分:1)
在你的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);
}
}
答案 2 :(得分:1)
我对jsp也不是很熟悉,但你的HTML标记有点乱。 确保html标记已正确嵌套。