Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ajax之后如何在selectbox中更新选项属性?_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript ajax之后如何在selectbox中更新选项属性?

Javascript ajax之后如何在selectbox中更新选项属性?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个选择框,用户可以在其中选择一个填充文本框的值,用户可以使用Ajax编辑该值。 选择框中的每个选项都有一个id和一个数据关键属性。我使用JQuery“change”事件处理程序用关键数据中的值填充文本框 <select id="actions"> <option id="p0" data-critical="100" value="0">Optie 0</option> <option id="p1" data-critical="120

我有一个选择框,用户可以在其中选择一个填充文本框的值,用户可以使用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成功时,数据关键值会发生更改,但当我再次选择该选项时,旧值会显示在文本框中。我试着用现场的方法,但什么也没发生。Firebug在关键数据中显示更新的值

<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);
}
有没有在文本框中显示更新后的值的建议?

您是否尝试过:

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

您是否尝试过:

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

在成功功能中,您应该尝试:

success: function(data){
  $("#p" + data.p.id).data("critical", data.p.critical);
}
阅读了解更多

在成功功能中,您应该尝试:

success: function(data){
  $("#p" + data.p.id).data("critical", data.p.critical);
}


阅读了解更多信息。

我可以从关键数据获取并更新值。问题是,当在Ajax调用后更改了数据关键值,并且我使用更新的数据关键值再次选择该选项时,文本框中显示的是旧值而不是新值。您的进一步代码是否在Ajax调用的.done/.success方法中?这就是为什么您应该替换$editcritical.valselected.data'critical';使用$editcritical.attrdata-critical;正如建议的那样。@Abhijit:editcritical没有attr“data critical”,data critical是selectbox@cooxie很抱歉,我没有注意到select或option的id,只是指使用attr而不是data。我可以从data critical获取并更新值。问题是,当在Ajax调用后更改了数据关键值,并且我使用更新的数据关键值再次选择该选项时,文本框中显示的是旧值而不是新值。您的进一步代码是否在Ajax调用的.done/.success方法中?这就是为什么您应该替换$editcritical.valselected.data'critical';使用$editcritical.attrdata-critical;正如建议的那样。@Abhijit:editcritical没有attr“data critical”,data critical是selectbox@cooxie对不起,我没有注意到select或option的id,只是指使用attr而不是数据。请发布更改数据关键型的ajax代码。请发布更改数据关键型的ajax代码。我尝试过,但没有。我可以用关键数据属性中的值设置文本框,但只能设置未更新的值。好的,上次更新成功了!谢谢你知道为什么用attr代替数据是错误的吗?@cooxie我在我的问题中分享了一个链接,请注意我试过了,但没有。我可以用关键数据属性中的值设置文本框,但只能设置未更新的值。好的,上次更新成功了!谢谢你知道为什么用attr代替data是错误的吗?@cooxie我在我的问题中分享了一个链接,请看