Javascript html(数据)如果我尝试在之后恢复原始内容,则不会显示

Javascript html(数据)如果我尝试在之后恢复原始内容,则不会显示,javascript,ajax,jquery-ajaxq,Javascript,Ajax,Jquery Ajaxq,我使用下面的js来处理ajax请求 $(document).ready(function() { // Variable to hold original content var original_content_qty = ''; $('.product-qty-<?php echo $products->fields[' products_id ']; ?>').submit(function(e) { e.preventDefault();

我使用下面的js来处理ajax请求

$(document).ready(function() {
  // Variable to hold original content
  var original_content_qty = '';
  $('.product-qty-<?php echo $products->fields['
    products_id ']; ?>').submit(function(e) {
    e.preventDefault();
    $.ajax({
      url: 'submit.php',
      type: 'POST',
      data: $(this).serialize(),
      dataType: 'html'
    }).done(function(data) {
      original_content_qty = $('.qty-update-<?php echo $products->fields['
                               products_id ']; ?>').html();
      console.log(original_content_qty);
      console.log(data);
      $('.qty-update-<?php echo $products->fields['
        products_id ']; ?>').fadeOut('slow', function() {
        $('.qty-update-<?php echo $products->fields['
          products_id ']; ?>').fadeIn('slow').html(data); //display a success message sent back via ajax
        $('.qty-update-<?php echo $products->fields['
          products_id ']; ?>').delay(1200).fadeOut('slow').html(data);
        $('.qty-update-<?php echo $products->fields['
          products_id ']; ?>').html(original_content_qty); // restore original content after success message
      });
    }).fail(function() {
      alert('Ajax Submit Failed ...');
    });
  });
});
$(文档).ready(函数(){
//用于保存原始内容的变量
var原始内容数量=“”;
$('产品数量-')。提交(功能(e){
e、 预防默认值();
$.ajax({
url:'submit.php',
键入:“POST”,
数据:$(this).serialize(),
数据类型:“html”
}).完成(功能(数据){
原始内容数量=$('.qty update-').html();
控制台日志(原始内容数量);
控制台日志(数据);
$(“.qty update-”).fadeOut('slow',函数(){
$('.qty update-').fadeIn('slow').html(数据);//显示通过ajax发送回的成功消息
$('.qty update-').delay(1200).fadeOut('slow').html(数据);
$('.qty update-').html(原始内容_数量);//成功消息后恢复原始内容
});
}).fail(函数(){
警报('Ajax提交失败…');
});
});
});
如果我没有电话线

$('.qty-update-<?php echo $products->fields['products_id']; ?>').html(original_content_qty);
$('.qty update-').html(原始内容\u数量);
成功消息正确显示,然后根据需要淡出。 但是,只要我添加行以恢复原始内容,它就会显示为显示原始内容,逐渐消失,然后替换原始内容

我看不出为什么我的成功消息没有显示,仅仅因为我添加了恢复内容的行

来自ajax show me的数据的控制台日志

<style>.block .notice.invalid{display:none;}</style>
  <div class="alert alert-info">
  <strong>Stock updated</strong>
</div>
.block.notice.invalid{display:none;}
股票更新
无论我是否尝试恢复内容,这都是相同的

原始内容数量的控制台日志为

Stock: <input type="hidden" name="products_id" value="289"><input type="text" name="products-quantity" value="0" size="4" class="product_quantity_input_289">
股票:

我尝试还原内容的方式是否出错?

我将一些内容拼凑在一起,您需要将这些步骤链接到自己的回调中

$(文档).ready(函数(){
//用于保存原始内容的变量
var原始内容数量=“”;
变量形式=$('.product-qty-42')
表格提交(功能(e){
e、 预防默认值();
$.ajax({
url:'submit.php',
键入:“POST”,
数据:$(this).serialize(),
数据类型:“html”
})
.完成(功能(数据){
变量元素=$('qty-update-42');
var original_content_qty=elem.html();
控制台日志(原始内容数量);
控制台日志(数据);
元素衰减('slow',function(){
elem.html(data.fadeIn('slow',function()){
元素延迟(1200).fadeOut('slow',function(){
html(原始内容数量).fadeIn('slow');
});
});
});
})
.fail(函数(){
警报('Ajax提交失败…');
});
});
});
$.mockjax({
url:“submit.php”,
responseText:“已工作”

” });


您不必将
.html(数据)
添加到淡出事件中。它已经在那里了。此外,您需要将其转换为函数,以便它等待淡出事件结束,然后可以使用fadeIn('slow').html(原始内容)。将此作为注释发布,因为我不知道这是否是答案。
.delay(…)
创建了一个异步行为,因此它之后的行实际上发生在
之前。fadeOut(…)
@nurdyguy True,我没有考虑到这一点,但是元素没有显示在延迟之前。即使没有延迟,问题仍然存在exists@BrandonMiller已删除其他.html(数据)。谢谢你的提醒,所以似乎到处都是心胸狭窄的人,他们只是喜欢在没有解释为什么的情况下大肆地投反对票。我提供了清晰的代码,并对我遇到的问题进行了简单的解释,结果我投了反对票。另一个用户提供了一个完全可行的解决方案,并清楚地解释了他们为什么/如何解决这个问题,这也被否决了。毫无疑问是同一头蠢驴因为某种原因在他的帽子里放了一只蜜蜂。小气的和完全没有帮助的。如果你想否决投票,请给出理由,以便用户在将来改进他们的问题/答案。非常好。这对我来说非常合适。你还教了我一些有用的东西,将这些步骤链接到它们自己的回调中。不客气!我稍微清理了一下,删除了不必要的
.empty()
调用。另一点要提到的是,像我在
var elem=…
中所做的那样,在变量中缓存选定的元素总是一个好主意。因此,只要您完全想使用同一个元素,就不需要一次又一次地选择它;)很值得知道。现在我只需要弄清楚如何更新替换的div内容中的值,以便在再次显示输入字段时显示更新的数量。您可以存储该值,稍后再将其插入。保存值
var quantity=$('input[name=“products quantity”]”,elem.val()
然后在恢复旧状态
elem.html(原始内容数量)后将其设置回原位$('input[name=“products quantity”]”,elem).val(数量);元素fadeIn(“慢”)另一个更好的方法是只隐藏输入,而不是覆盖它,这样它就可以保留它的值