我试图让像google这样的小脚本添加更多文件,但我收到的错误如下:
ReferenceError: addFile is not defined
我正在使用的脚本是:
的Javascript
function addElement(parentId, elementTag, elementId, html) {
// Adds an element to the document
var p = document.getElementById(parentId);
var newElement = document.createElement(elementTag);
newElement.setAttribute('id', elementId);
newElement.innerHTML = html;
p.appendChild(newElement);
}
function removeElement(elementId) {
// Removes an element from the document
var element = document.getElementById(elementId);
element.parentNode.removeChild(element);
}
var fileId = 0; // used by the addFile() function to keep track of IDs
function addFile() {
fileId++; // increment fileId to get a unique ID for the new element
var html = '<input type="file" name="uploaded_files[]" />' +
'<a href="" onclick="javascript:removeElement('file-' + fileId + ''); return false;">Remove</a>';
addElement('files', 'p', 'file-' + fileId, html);
}
HTML:
<form enctype="multipart/form-data" action="" method="post">
<p>Upload file(s)</p>
<div id="files">
<p><input type="file" name="uploaded_file[]" /></p>
</div>
<p><input type="button" value="Add File" onclick="addFile();" /></p>
</form>
jsfiddle例子:
http://jsfiddle.net/neocastelli/qy7xfheb/
有没有办法知道为什么没有定义addFile?
答案 0 :(得分:1)
你在逃避字符串方面犯了错误。
var html = '<input type="file" name="uploaded_files[]" /> ' +
'<a href="" onclick="javascript:removeElement('file-' + fileId + ''); return false;">Remove</a>';
必须:
var html = '<input type="file" name="uploaded_files[]" /> ' +
'<a href="" onclick="javascript:removeElement("file-' + fileId + '"); return false;">Remove</a>';
此功能也不是全局的。你必须这样做:
window.addFile = function() {