jQuery更新DOM,浏览器不

时间:2016-01-14 09:13:50

标签: javascript php jquery

我正在开展一个项目,例如,当用户将数据输入到字段编号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 '-';
  }
?>

1 个答案:

答案 0 :(得分:0)

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

如果您只使用一个应该在更改时调用请求的textarea id,那么它可能会更具描述性。