Добавить больше текстовых полей динамически MVC View

0

Я пытаюсь сделать то, что опубликовано здесь, но в моем случае мне пришлось немного изменить его, поскольку представление MVC имеет несколько форм тегов при визуализации. Мне нужны "файлы", которые можно назвать теми же именами, что и существующий файл. Мне также может потребоваться добавить новые имена и описания для каждого нового окна, но havnt получил еще далеко.

Мой взгляд:

<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">&nbsp;</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 не является функцией"

Может кто-нибудь объяснить? Заранее спасибо.

Теги:
forms
asp.net-mvc

1 ответ

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);
} 
  • 0
    Спасибо, работает как шарм

Ещё вопросы

Сообщество Overcoder
Наверх
Меню