jQuery更新DOM,浏览器不更新


jQuery updates DOM, browser does not

我正在从事一个项目,例如,当用户将数据输入字段编号 1 时,应使用数据库中的值更新网页上的字段编号 3。这已经可以正常工作,没有任何问题。

但是,如果用户先修改字段编号 3,稍后修改字段编号 1,则只会更新 DOM(正如我从 Firebug 中可以看出的那样),但字段编号 3 对用户没有任何可见的更改。

我创建了这个问题的一个非常基本的版本,但我仍然无法说出这里出了什么问题。

.HTML

<div id="container1">
  <textarea id="container1.1">Entry 1.1</textarea>
  <textarea id="container1.2">Entry 1.2</textarea>
  <textarea id="container1.3">Entry 1.3</textarea>
</div>

jQuery

$(document).ready(function() {
  $('textarea').change(function() {
    var clickedObject = $(this);
    var id            = $(this).attr('id').substr(9);
    var value         = $(this).val();
    var dataString    = "id=" + id + "&value=" + value;
    $.ajax({
      type: "POST",
      url: "update.php",
      data: dataString,
      cache: false,
      success: function(Result)
      {
        if(Result == '-')
        {
          console.log('Nothing to do');
        } else {
          clickedObject.next().next().html(Result);
        }
      }
    });
  });
});

.PHP

<?php
  if ($_POST['id'] == '1.1') {
    echo 'Modified string';
  } else {
    echo '-';
  }
?>

您必须通过 .val() 方法而不是 html() 来设置 textarea 的值。

如果您只使用一个应该在更改时调用请求的文本区域 id,也许它会更具描述性。