Php 为什么在我提交单个输入时两个ajax调用都运行?

Php 为什么在我提交单个输入时两个ajax调用都运行?,php,jquery,ajax,Php,Jquery,Ajax,我在一个div中动态生成两个段落和两个输入字段。可能会生成许多div,这取决于从数据库中提取的记录数。每个段落和输入字段都分配了一个唯一的id。 当用户单击一个字段(比如firstText_id)时,jQuery会隐藏该字段并在其位置显示输入字段firstText_input_id。用户更新输入字段,一单击,就会调用一个ajax脚本来更新数据库并返回一条成功消息。 我的问题是,当用户单击任何记录中的一个字段并对其进行更新,然后单击其他字段时,就会对这两个字段进行ajax调用 PHP 由于唯一ID

我在一个div中动态生成两个段落和两个输入字段。可能会生成许多div,这取决于从数据库中提取的记录数。每个段落和输入字段都分配了一个唯一的id。 当用户单击一个字段(比如firstText_id)时,jQuery会隐藏该字段并在其位置显示输入字段firstText_input_id。用户更新输入字段,一单击,就会调用一个ajax脚本来更新数据库并返回一条成功消息。 我的问题是,当用户单击任何记录中的一个字段并对其进行更新,然后单击其他字段时,就会对这两个字段进行ajax调用

PHP
由于唯一ID是从数据库记录动态生成的,因此我找不到一种方法将用户的单击与正在更新的字段相关联,而不更新记录中的其他字段。我是jQuery/javascript的相对初学者。如何将用户的操作与单击的字段隔离?我已经尝试过像“[id^=“firstText\u input\u”]”这样的单击选择器。可能是一个简单的错误,但我已经绕了太多次才看到错误。

导致ajax发生的事件实际上绑定到文档,因此,任何输入更改时,文档都会收到事件并执行ajax请求

见下文:

$(document).on('click', '.someclass', function () {...}).change(function () {...});
.change
的目标是
$(文档)
,而不是
$('.someclass')
,您必须使用与以前相同的委托语法来将其委托给目标元素

$(document).on('click', '.someclass', function () {...}).on('change', '.someclass', function () {...});
firstText
lastText
都会受到此问题的影响,这就是为什么在您更改任一输入时都会触发此问题的原因


另外。。。您的事件绑定非常不一致。在某些情况下,您使用的是委派,而在其他情况下,您不使用委派。因为要替换div的全部内容,所以应该对该div中的所有事件使用事件委派

$(document).on('click', '.someclass', function () {...}).change(function () {...});
$(document).on('click', '.someclass', function () {...}).on('change', '.someclass', function () {...});