捕获一个字符串并在单击按钮时将其传输到 Javascript 函数

Catch a string and transmit it to a Javascript function on button click

以下是 Django 模板语言语法。但这没关系。 {{ }} 表示从框架传输的东西。

在后台我有两个相关的模型。那可能是人和他们的地址。一对多关系。所以,一个人有多个地址。

好吧,在包含此人详细信息的页面中,我列出了他们的地址列表。右边的每个地址都有两个按钮:编辑和删除。当然是通过 AJAX 更新。

如何编辑和删除对我来说是个谜。以编辑为例。

这是模型详细信息的一部分。

<ul id="{{ related_model_name }}_ul" class="update">
    {% for object in object_list %}
        <li>{{ object }}
            <a href="javascript:void(0)">Edit</a>
        </li>
    {% endfor %}
</ul>

我们这里有什么: 1. {{ object }} 将只呈现一个字符串。比如“白金汉宫 London SW1A 1AA”。因此,它不可点击,但 "Edit" 可点击。

  1. 框架可以像这样为这个对象生成更新url {{ object.get_update_url }},这将导致类似 'person/12/update_address/'.我想通过单击事件 Javascript 捕获此更新 url 。然后我就可以通过 AJAX 将其传输到服务器。

  2. 那我就这样:

function update_address(url){
        $.ajax({
            method: 'get',
            url: url,
            success: show_address_form_get,
            error: fail
        });
}
function handle_update_buttons(){
    var update_button_list = $(".update");
    $.each(update_button_list, function assign_click(){
        this.click(update_date);
    })
}

嗯,这是我的大概想法。 Web开发的新手。也许有更简单的方法。

你能给我一个提示,如何在单击相应的编辑按钮时将每个地址的更新 url 传输到 update_date 函数。

您可能希望将 data-attribute 分配给 link:

,例如 data-updateUrl
<ul id="{{ related_model_name }}_ul" class="update">
    {% for object in object_list %}
        <li>{{ object }}
            <a href="javascript:void(0)" data-updateUrl="{{ object.get_update_url }}">Edit</a>
        </li>
    {% endfor %}
</ul>

然后您可以将该属性用于您的函数(在您的点击处理程序中)

function clicked(el) {
    var updateUrl = el.target.getAttribute('data-updateUrl');
}