我正在从事一个项目,例如,当用户将数据输入字段编号 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,也许它会更具描述性。