我對jQuery的知識不是很多,但我想要做的是允許用戶單擊表單上的按鈕,以向要提交的表單添加更多字段到表單本身...類似於gmail用於通過爲每個文件添加一堆輸入字段來處理電子郵件附件的方式,任何人都有關於如何執行該操作的一些指示?ASP.NET MVC使用jQuery的Ajax可擴展表單
2
A
回答
4
考慮,你希望把你的新領域與ID =「contentDiv」使用id =「buttonId」的按鈕和一個div:
$('#buttonId').click(
function() {
$('<div>someinput, like textboxes ecc</div>')
.appendTo($('#contentDiv'));
}
);
有了這個語法,你可以在新的內容直接操作,如:
$('#buttonId').click(
function() {
$('<div>someinput, like textboxes ecc</div>')
.hide()
.appendTo($('#contentDiv'))
.fadeIn('fast');
}
);
因此,新內容淡入淡出而不是顯示。
3
如果不爲您編寫所有代碼,請在表單中創建一個容器,如div。
<div id="morefields"></div>
保持一個全局變量與字段的#
var fieldCount = 0;
然後添加到該div
fieldCount++;
var id = 'fieldname' + fieldCount;
var fields = $("#morefields").html() + "<input id='" + id + "' name = '" + id + "' />";
$("#morefields").html(fields);
有你的控制器功能接受的FormCollection作爲參數的HTML,閱讀領域。
希望有人會發佈一個更清潔的方式。這是我以前做過的。代碼可能無法編譯,從內存中編寫,但你得到的要點。
+0
下面的appendTo看起來更乾淨。 – 2009-10-12 17:44:15
+0
(+1)也許我只需要輸入如下名稱:name ='fieldname ['+ fieldCount']';所以ModelBinding可以用於控制器的動作。 – 2009-10-12 19:49:17
1
0
有一個插件:)。見jquery-dynamic-form。
我忘記了appendTo,這看起來更清潔:) – 2009-10-12 17:44:46
由於某種原因,這不工作在我的網頁上...語法是一樣的,頁面上沒有任何事情發生,所有內容都被正確地拉入,不知道爲什麼它有問題 – Jimmy 2009-10-12 18:16:52
一定要匹配示例的所有ID(在標籤中寫入時沒有尖銳的「#」,但一定要把選擇器中的「#」)。然後,請確保您在選擇器中提供了正確的HTML內容。 – 2009-10-12 21:09:44