将点击的表单传递给bootbox.confirm()

时间:2016-11-29 12:15:46

标签: javascript jquery forms bootbox

我有一个提交表单,每个表单都删除一个对象:

{% for person in persons %}
<form id='form'  name='delete'  action="{% url 'delete_person' person.id %}"
          method='POST'>

    {% csrf_token %}

    <button type='submit' onclick="bootbox.confirm();" id="del"  class='btn btn-xs btn-link icon'><i  class='glyphicon glyphicon-remove'></i></button>
</form>
{% endfor %}

当我点击删除图标时,应删除相应的人,

我正在使用bootbox.confirm():

   <script type="text/javascript">
$(document).ready(function(){
$(".btn#del").click(function(e) {
    e.preventDefault();
    var lHref = $('form#form1').attr('action');
    bootbox.confirm("Are you sure?", function(confirmed) {
        if(confirmed) {
            window.location.href = lHref;
        }
    });
});
})
</script>

我正在获取下面表格的网址:

    var lHref = $('form#form1').attr('action');
    bootbox.confirm("Are you sure?", function(confirmed) {
    if(confirmed) {
    window.location.href = lHref; ...

问题是,无论我点击哪个删除按钮,表单中的第一个用户都会被删除,所以我想知道如何将$(this)传递给bootbox.confirm()以便我可以获得正确的URL < / p>

1 个答案:

答案 0 :(得分:0)

而不是绑定到按钮的id(在你的情况下是多个,所以它只会绑定第一个按钮的事件)使用表单的提交事件

也可以从你的按钮中删除onclick

{% for person in persons %}
<form id='form'  name='delete'  action="{% url 'delete_person' person.id %}"
          method='POST'>

    {% csrf_token %}

    <button type='submit' id="del"  class='btn btn-xs btn-link icon'><i  class='glyphicon glyphicon-remove'></i></button>
</form>
{% endfor %}

在javascript中

<script type="text/javascript">
$(document).ready(function(){
$("form").submit(function(e) {
    e.preventDefault();
    var lHref = $(this).attr('action');
    bootbox.confirm("Are you sure?", function(confirmed) {
        if(confirmed) {
            window.location.href = lHref;
        }
    });
});
})
</script>