2016-03-25 59 views
1

我有這樣一個鏈接:按鈕單擊添加操作URL的jQuery

<a class="glyphicon glyphicon-remove glyphicon-color-red btn-delete" data-toggle="modal" data-target="#myModal" user-id="56f52ea551d72027711157d6"></a> 

而且使用jQuery,就點擊我把參數user-id和更改操作URL,這個代碼是不工作的原因,當我點擊出現刪除按鈕模式彈出窗口,但如果我檢查元素,我看到該動作是空的?

$('.btn-delete').click(function() { 
    var user_id = $(this).attr('user-id'); 
    $('#modal-form').attr('action', "{{ url_for('admin.delete_user', id=" +user_id+") }}"); 
    }); 

我在航線admin.delete_user在Python中使用的方法是:

def delete_user(self, id): 
    mongo.db.users.remove({'_id': ObjectId(id)}) 
    return redirect(url_for('admin.users')) 

和模態彈出:

<div class="modal fade" id="myModal" role="dialog"> 
<div class="modal-dialog modal-sm"> 
    <div class="modal-content"> 
    <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal">&times;</button> 
     <h4 class="modal-title"><span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span></h4> 
    </div> 
    <form id="modal-form" action=" " method="POST"> 
    <div class="modal-body"> 
     <p>Are you sure?</p> 
    </div> 
    <div class="modal-footer"> 
      <button type="button" class="btn btn-default btn-sm btn-style" data-dismiss="modal">Cancel</button> 
      <button type="submit" class="btn btn-default btn-sm btn-filter-apply btn-style" >Yes</button> 
    </div> 
    </form> 
    </div> 
</div> 

我不明白爲什麼在jQuery中的動作URL不被添加?

+0

你是什麼意思行動是空的?當它被點擊或從服務器返回時它是空的嗎?它完全是空的還是隻是缺少user_id部分? – Cruiser

+0

當我點擊一個帶類.btn-delete的鏈接時,模態出現,我看到模態動作URL完全是空的,就像這樣「

」,我認爲問題是當我通過url_for參數user_id,但我不知道? – EgzEst

+0

我認爲你的jquery不知道如何處理{{}}。我會做的是在你的表單動作中包含該部分,然後將user_id追加到jquery – Cruiser

回答

0

確保所做的任何更改,以便您可以使用現成()之前,DOM加載:

$(document).ready(function(){ /* your code */ }); 
+0

我已經在使用它 – EgzEst

0

我會改變你的url_for函數來產生你所需要的網址的一部分,那麼把它放在行動attr。然後,使用jquery將user_id附加到字符串。確保你修改了抓取URL來解析參數。這裏有一個例子:

url_for返回是這樣的:http://www.example.com?delete_user=

然後你的表單操作:

<form id="modal-form" action="{{url_for(delete_user)}}" method="POST"> 

和你的jQuery然後會:

$('.btn-delete').click(function() { 
    var user_id = $(this).attr('user-id'); 
    var action = $('#modal-form').attr('action'); 
    $('#modal-form').attr('action', action + user_id); 
}); 

最後,無論是解析表單會查找url參數delete_user =並使用您附加到它的user_id。