我正在尝试发布here的内容,但在我的情况下,由于MVC视图在呈现时有多个表单标记,因此我必须稍微修改它。我需要“文件”框,可以调用与现有文件输入相同的名称。我可能还需要为每个新盒子添加新的名称和描述,但是目前还没有这么做。
我的观点:
<div id="dialog1" title="Upload Multiple Files">
<% using (Html.BeginForm("MyAction", "MyController", new { path = Model.FullPath }, FormMethod.Post, new { enctype = "multipart/form-data", id = "uploadsfrm" }))
{%>
<p>
<input type="file" id="file1" name="fileUpload" size="23" />
</p>
<p>
Title</p>
<input type="text" id="Text1" name="txtNiceName" style="width: 100%;"/>
<p>
Description</p>
<input type="text" id="Text2" name="txtDescription" style="width: 100%;"/>
<INPUT type="button" value="Add" onclick="addbox('file')"/>
<span id="addBoxes"> </span>
<p>
<input type="submit" value="Upload file" /></p>
<% } %>
</div>
脚本:
function addbox(type) {
var element = $("#uploadsfrm").createElement("input");
element.setAttribute("type", type);
element.setAttribute("value", type);
element.setAttribute("name", type);
var foo = $("#uploadsfrm").getElementById("addBoxes");
foo.appendChild(element);
}
点击添加按钮后,我在Firebug中遇到的错误说: “TypeError:$(...)。createElement不是函数”
有人可以解释一下吗?提前谢谢。
答案 0 :(得分:2)
您正在使用jQuery。
jQuery不包含.createElement()
函数。
这就是为什么你会得到这个错误。
如果你想用jQuery创建一个新元素,你只需要执行$
函数,并使用元素标记作为参数。
var element = $("<input>")`//in this example, we create a new input.
如果你想将这个元素附加到另一个元素,你只需执行.append()
函数,如:
$("#uploadsfrm").append(elememt);
您还可以使用$
功能定义属性。
示例:
function create(){
//new Input stored in element
var element = $("<input>",{
//your Attributes
name:"theInputName",
placeholder: "yourPlaceholder"
});
//appending your New input
$("#yourAppendID").append(element);
}