gpt4 book ai didi

javascript - 如何将参数传递给 jQuery UI 对话框事件处理程序?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:19:54 26 4
gpt4 key购买 nike

我目前正在尝试连接 jQuery UI 对话框,以便我可以使用它为我的页面创建新项目并修改页面上已有的项目。我在前者管理。然而,我目前正在为后一个问题而苦苦挣扎。我只是找不到将要修改的项目传递到对话框的好方法。

这里有一些代码可以更好地说明问题。特别注意标有 XXX 的部分。 {{}} 部分源自 Django 模板语法:

$(".exercise").click(function() {
$.post("{{ request.path }}", {
action: "create_dialog",
exercise_name: $(this).text()
},
function(data) {
$("#modify_exercise").html(data.content);
},
"json"
);

$("#modify_exercise").dialog('open');
});

$("#modify_exercise").dialog({
autoOpen: false,
resizable: false,
modal: true,
buttons: {
'{% trans 'Modify' %}': function() {
var $inputs = $('#modify_exercise :input');

var post_values = {};
$inputs.each(function() {
post_values[this.name] = $(this).val();
});

post_values.action = 'validate_form';

//XXX: how to get the exercise name here?
post_values.exercise_name = 'foobar';

$.post('{{ request.path }}', post_values,
function(data) {
if( data.status == 'invalid' ) {
$('#modify_exercise').html(data.content);
}
else {
location.reload();
}
},
"json"
);
}
}
});

这里有一些标记来显示代码与结构的关系:

<div id="modify_exercise" class="dialog" title="{% trans 'Modify exercise' %}">
</div>

<ul>
{% for exercise in exercises %}
<li>
<a class="exercise" href="#" title="{{ exercise.description }}">
{{ exercise.name }}
</a>
</li>
{% endfor %}
</ul>

最佳答案

也许以下内容更适合您的口味:

$("#modify_exercise").dialog('open');之前,添加

$("#modify_exercise").data('exercise_name',$(this).text());

并在按钮回调中,将 post_values.exercise_name = 'foobar'; 替换为

 post_values.exercise_name = $(this).data('exercise_name');

关于javascript - 如何将参数传递给 jQuery UI 对话框事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2930676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com