我有一个选择框,用户可以在其中选择一个填充文本框的值,用户可以编辑该值(使用Ajax)。 selectbox中的每个选项都有一个id和一个数据关键属性。我使用JQuery'change'事件处理程序用数据关键字中的值填充文本框。
<select id="actions">
<option id="p0" data-critical="100" value="0">Optie 0</option>
<option id="p1" data-critical="120" value="1">Optie 1</option>
</select>
<input type="text" id="editcritical" />
$("#actions").change(function() {
var selected = $(this).find('option:selected');
$("#editcritical").val(selected.data('critical'));
});
ajax-success: function(data){
$("#p" + data.p.id).attr("data-critical", data.p.critical);
}
在Ajax成功时,数据关键值会发生变化,但是当我再次选择该选项时,旧值将显示在文本框中。我尝试使用Live方法,但什么也没发生。 Firebug显示数据关键的更新值。
有关在文本框中显示更新值的建议吗?
答案 0 :(得分:1)
$("#actions").change(function() {
var selected = $(this).find('option:selected');
$("#editcritical").val(selected.attr('data-critical'));
});
在你的成功函数中你应该尝试:
success: function(data){
$("#p" + data.p.id).data("critical", data.p.critical);
}
阅读jQuery data() vs attr(data)了解详情。
答案 1 :(得分:0)
您是否尝试过:
$("#editcritical").attr("data-critical");