在这里,我尝试使用ajax在外部传递for循环模型的值。
这是我的template.html
{% for compliance in compliance %}
{% complience_category compliance request.user as compliances %}
{% for qualification in compliances %}
.....
.....
<td>
<button data-id="{{ qualification.id }}" type="button" class="btn btn-warning margin-bottom edit-qualification">
edit
</button>
</td>
....
.....
{% endfor %}
{% csrf_token %}
<div class="modal hid fade" id="modal-default">
<form class="form-horizontal" method="POST" enctype="multipart/form-data" action=" {% url 'update_qualifications' qualification.id %}">
{% csrf_token %}
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3>Update Compliance</h3>
</div>
<div class="modal-body">
<div class="control-group">
<label class="control-label" for="inputdate_{{qualification.id}}">Expiry Date</label>
<div class="controls">
<input type="date" id="inputdate_{{qualification.id}}" name="expiry_date" value="{{qualification.expiry_date|date:'Y-m-d'}}">
</div>
</div>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal">Close</button>
<button class="btn btn-primary" type="submit">Save</button>
</div>
</form>
</div>
{% endfor %}这是我的AJAX
$(document).on('click','.edit-qualification',function(){
var id = $(this).data('id');
$.ajax({
url:'',
type:'POST',
data:{
'id':id,
'csrfmiddlewaretoken': $('input[name=csrfmiddlewaretoken]').val(),
},
success:function(data){
$('#edit_modal .modal-dialog').html($('#edit_modal .modal-dialog',data));
$('#edit_modal').modal('show');
},
error:function(){
console.log('error')
},
});
});
</script>在这里,我的模式在for循环之外
在这里,我的问题是,当我单击编辑按钮时,我的模式弹出窗口无法工作(这意味着当单击编辑按钮时,对我没有任何作用)。
发布于 2022-06-27 12:52:23
这里我的模式在for循环之外
从外观上看,这个模式仍然在for loop的内部。
{% for compliance in compliance %}
...
...
# your modal is here...
{% endfor %}我建议把模态放在loop之外。
另外要注意的是,在这里使用Ajax是没有必要的,除非我不理解您使用它的目的是什么。
但是,对于edit button,我建议您添加两个属性:data-toggle和data-target。示例:
<button data-toggle="modal" data-target="#myModal">
edit
</button>在您的例子中,您可以为模式div提供一个id:id="modal-default"。这应该分配给按钮的data-target属性。data-target="#modal-default"。
因此,对于edit button,您应该拥有的是:
<button data-toggle="modal" data-target="#modal-default" data-id="{{ qualification.id }}" type="button" class="btn btn-warning margin-bottom edit-qualification">
edit
</button>理想情况下,这应该可以用来显示模态。
至于如果单击特定的编辑按钮,如何将值传递到模式的问题,那么我建议您看到这个answer here,因为它可能非常有用。
https://stackoverflow.com/questions/72770618
复制相似问题