Javascript Django inline小部件-每次;加上另一个“;按钮被点击
我将插件用作所有JSON字段的小部件,但是当单击“添加另一个[model]”按钮后添加jsoneditor小部件时,小部件呈现和其他初始化函数(包括JS文件)没有正确调用/加载,因此html加载,但功能无法正常工作 我想知道的是,如何重新加载在单击“添加另一个”按钮后添加的整个jsoneditor/inline小部件 添加和删除内联时,我成功调用了以下JS函数:Javascript Django inline小部件-每次;加上另一个“;按钮被点击,javascript,django,django-forms,django-templates,django-views,Javascript,Django,Django Forms,Django Templates,Django Views,我将插件用作所有JSON字段的小部件,但是当单击“添加另一个[model]”按钮后添加jsoneditor小部件时,小部件呈现和其他初始化函数(包括JS文件)没有正确调用/加载,因此html加载,但功能无法正常工作 我想知道的是,如何重新加载在单击“添加另一个”按钮后添加的整个jsoneditor/inline小部件 添加和删除内联时,我成功调用了以下JS函数: (function($) { $(document).on('formset:added', function(event, $r
(function($) {
$(document).on('formset:added', function(event, $row, formsetName) {
console.log('Formset added');
});
$(document).on('formset:removed', function(event, $row, formsetName) {
console.log('Formset removed');
});
})(django.jQuery);
但我想从JavaScript自身内部了解,如何重新加载添加的jsoneditor小部件
以下是小部件供参考:
class JSONEditorWidget(django.forms.Widget):
template_name = 'django_json_widget.html'
class Media:
css = {'all': (_STATIC_URL + 'dist/jsoneditor.min.css',)}
js = (_STATIC_URL + 'dist/jsoneditor.min.js',)
def render(self, name, value, attrs=None, renderer=None):
context = {
'data': value,
'name': name
}
return django_safestring.mark_safe(django_loader.render_to_string(
self.template_name, context)
)
只需重新加载页面。。。但是如果你不想重新加载整个页面,你应该使用JS使它不需要重新加载页面。只想重新加载小部件AdddJango只会回答你如果你去服务器打电话给他,因为他在服务器端工作。。。您可以使用ajax来防止页面重新加载,但我不知道ajax是否适合您的情况,请尝试从jsoneditor中删除JS导入,并使用javascript再次导入(删除html元素,单击按钮后再次添加)