我有这样的链接:
<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+" ) }}");
});
我在python中的路由admin.delete_user中使用的方法是:
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">×</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 :(得分:0)
确保在进行任何更改之前已加载DOM,您可以使用ready():
$(document).ready(function(){ /* your code */ });
答案 1 :(得分:0)
我会将你的url_for函数更改为生成你需要的部分url,然后将其放在action 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。