作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于我的生活,我无法弄清楚这段代码有什么问题。它曾经在早期版本中工作,在我重新排列页面底部的 javascript 后,它无法正常工作。它不断给我这个错误:
抛出错误的行如下:$('.formset_row').formset({
这是the jquery plugin我用过的。这曾经完美地工作,直到像昨天一样,当我可能触及我不应该触及的东西时。
<!-- Select2 JS -->
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/select2.min.js"></script>
<!-- Semantic UI -->
<script src="https://code.jquery.com/jquery-3.6.0.slim.min.js" integrity="sha256-u7e5khyithlIdTpu22PHhENmPcRdFiHRjhAuHcs05RI=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.6.0/dist/umd/popper.min.js" integrity="sha384-KsvD1yqQ1/1+IA7gi3P0tyJcT3vR+NdBTt13hSJ2lnve8agRGXTTyNaBYmCR/Nwi" crossorigin="anonymous"></script>
<script src="/static/bootstrap/js/bootstrap.min.js"></script>
<!-- Select2 JS -->
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/select2.min.js"></script>
<script src="/static/js/script.js"></script>
<script>
/*$('body').on('focus',".my-date-picker", function(){
$('.my-date-picker').datetimepicker({
format: 'DD/MM/YYYY',
ignoreReadonly: true,
showTodayButton: true
});
});*/
</script>
<script src="/static/formset/jquery.formset.js"></script>
<script type="text/javascript">
$('.formset_row').formset({
addText: '<div style="color: #34C6AA;" class="my-2 text-center"><span class="oi oi-plus"></span> Add Education</div>',
deleteText: '<div style="color: #f4816e; text-decoration: none;" class="my-2 text-center"> <span class="oi oi-x"></span> Remove Education</div> ',
prefix: 'educations'
});
</script>
</body>
{% extends '_base.html' %}
{% load crispy_forms_tags %}
{% load static %}
{% block content %}
</br>
<h1 class="display-4 text-responsive">Edit your education information</h1>
<h3 class="display-6 text-muted">This will be visible on your profile</h3>
<p><span style="color: #f4816e;">IMPORTANT:</span></p>
<ul>
<li>Leave the End Date field empty if you are currently enrolled in your school/university</li>
</ul>
<hr>
<form method="POST" action="">
{% csrf_token %}
{{ formset.management_form }} {# This is necessary when using formsets #}
{% for form in formset %}
{{ form.media }} {# This shit is responsible for showing the datepicker #}
<div class="formset_row">
<div class="row">
{% if forloop.first %}
{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}
{% endif %}
{% for field in form.visible_fields %}
{% if field.name == "start_date" or field.name == 'end_date' %}
{% if field.name == 'end_date' %}
<div class="col-lg-2 col-sm-12 col-md-1">
{{ field.label }}
{{ field }} </br>
</div>
{% else %}
<div class="col-lg-2 col-sm-12 col-md-1">
{{ field.label }}
{{ field }} </br>
</div>
{% endif %}
{% elif field.name != 'DELETE' %}
<div class="col-lg-4 col-sm-12 col-md-4">
{{ field.label }}
{{ field }} </br>
</div>
{% else %}
{{ field }}
{% endif %}
{% endfor %}
</div>
</div>
{% endfor %}
<div class="d-block d-sm-none ">
<input type="submit" name="save_and_next" value="Save and continue to next step" class="btn btn-success btn-block">
<input type="submit" name="save_and_profile"value="Save and go to profile" class="btn btn-outline-info btn-block">
<a href="{% url 'recruitment:update_coach_prof_exp' %}" class="btn btn-light btn-block">Skip step</a>
</div>
<div class="d-none d-md-block ">
<input type="submit" name="save_and_next" value="Save and continue to next step" class="btn btn-success">
<input type="submit" name="save_and_profile"value="Save and go to profile" class="btn btn-outline-info">
<a href="{% url 'recruitment:update_coach_prof_exp' %}" class="btn btn-light">Skip step</a>
</div>
</form>
<script>
$('body').on('focus',".my-date-picker", function(){
$(this).datetimepicker({
format: 'DD/MM/YYYY',
ignoreReadonly: true,
showTodayButton: true
});
});
</script>
<script src="{% static 'formset/jquery.formset.js' %}"></script>
<script type="text/javascript">
$('.formset_row').formset({
addText: '<div style="color: #34C6AA;" class="my-2 text-center"><span class="oi oi-plus"></span> Add Education</div>',
deleteText: '<div style="color: #f4816e; text-decoration: none;" class="my-2 text-center"> <span class="oi oi-x"></span> Remove Education</div> ',
prefix: '{{ formset.prefix }}'
});
</script>
{% 端块内容 %}
formTemplate
属性是
$.data
它没有用。现在是
null
它有效。
最佳答案
正如您所说,设置 formTemplate
属性为 null 导致您的表单工作。
从插件的文档:
formTemplate
Use this to override the form that gets cloned, each time a new forminstance is added. If specified, this should be a jQuery selector.
Cannot read property 'createDocumentFragment' of null
的原因错误,jQuery 找不到
.formset_row
元素,因为您通过用模板覆盖它来删除它。通过设置
formTemplate
属性(property)到
null
,插件被指示使用已经存在的元素(也就是不覆盖已经存在的元素)而不是模板(也就是用模板覆盖已经存在的元素)。
关于javascript - Django 中的 jQuery : Uncaught TypeError: Cannot read property 'createDocumentFragment' of null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66742680/
我是一名优秀的程序员,十分优秀!