1

我有一个选择框,用户可以在其中选择一个填充文本框的值,并且用户可以编辑该值(使用 Ajax)。选择框中的每个选项都有一个 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 在 data-critical 中显示更新的值。

有什么建议可以在文本框中显示更新的值吗?

4

2 回答 2

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() 与 attr(data)以了解更多信息。

于 2012-06-03T16:25:40.833 回答
0

您是否尝试过:

$("#editcritical").attr("data-critical");

?

于 2012-06-03T16:25:00.407 回答