如何在ajax之后的选择框中获取更新的选项属性?

时间:2012-06-03 16:22:48

标签: javascript jquery ajax

我有一个选择框,用户可以在其中选择一个填充文本框的值,用户可以编辑该值(使用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显示数据关键的更新值。

有关在文本框中显示更新值的建议吗?

2 个答案:

答案 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");