在Django管理添加頁面,使用TabularInline
當它有一個錨Add another Poll
它的HTML看起來像Django的管理員formset:如何使用jQuery添加一個新的formset行?
<a href="javascript:void(0)">Add another Poll</a>
現在我想添加一個新行,就像使用鼠標點擊的錨,在文件輸入變化事件被觸發:
$('input:file').change(function(e){
//... do something ...
var rows = "#poll_set-group .tabular.inline-related tbody tr";
var addbtn = $(rows).parent().find("tr:last a")
addbtn.click(); // try to add a new row but doesn't work
});
元素選擇正確,但click()不起作用。我也試過addbtn.trigger('click')
,雖然它幾乎做同樣的事情,仍然無法正常工作。
當我跟蹤到了Django的inline.js可以看到綁定的功能
inline.js
(function($) {
$.fn.formset = function(opts) {
///...
if ($(this).length && showAddButton) {
var addButton;
if ($(this).attr("tagName") == "TR") {
//...
addButton = $(this).parent().find("tr:last a");
} else {
//...
addButton = $(this).filter(":last").next().find("a");
}
addButton.click(function() {
//...
});
}
}
})(django.jQuery);
誰能告訴我爲什麼.click()
不起作用? 或其他建議做同樣的事情?
我沒有找到'addbtn.click()'的代碼(你正在調用這個函數但沒有執行)你有沒有想要發佈的東西? – kartheek 2013-02-21 07:59:20
我認爲在文檔準備好之後,click()實現已經綁定到'addButton.click(...',當調用'$(rows).formset(...)'時,我所要做的就是觸發click事件。我的想象力錯了嗎? – jcjason 2013-02-21 08:21:38