Php 如何检测表单是否输入';s值自设置后已更改
我目前正在创建一个定制的CMS。我正在处理的具体部分是关于管理照片库的。在用户可以更新某个相册中的详细信息的页面上,我使用jQuery的Php 如何检测表单是否输入';s值自设置后已更改,php,javascript,jquery,html,input,Php,Javascript,Jquery,Html,Input,我目前正在创建一个定制的CMS。我正在处理的具体部分是关于管理照片库的。在用户可以更新某个相册中的详细信息的页面上,我使用jQuery的$.ajax进行了大量更新 例如,每个图像旁边都有一个标题字段,我将focusout事件绑定到我的ajax调用中,它工作得非常好,使用户可以快速地通过选项卡查看和更新照片的所有标题 但是,由于我正在绑定focusout事件,因此可能会调用很多次,特别是在不需要时。比如说,他们在三个字段中进行制表,而这三个字段是不变的。每次按下tab键时都会调用$.ajax,即使
$.ajax
进行了大量更新
例如,每个图像旁边都有一个标题字段,我将focusout
事件绑定到我的ajax调用中,它工作得非常好,使用户可以快速地通过选项卡查看和更新照片的所有标题
但是,由于我正在绑定focusout
事件,因此可能会调用很多次,特别是在不需要时。比如说,他们在三个字段中进行制表,而这三个字段是不变的。每次按下tab键时都会调用$.ajax
,即使他们没有更改输入值
所以,我的问题是,如何存储和检测一个值是否与最初的值(或上次ajax调用时的值)不同
是否可以使用jQuery的
.data()
?将原始值存储在input type中,并比较每个focusout事件中的原始值和当前值 正确执行此操作的关键是将数据与输入字段分开。当用户模糊输入框时,可以对照内存中的数据检查值。如果值不同,则执行ajax请求。如果没有,你什么也不做,并保存往返
您可以自己编写,但在过去几年中出现了很多框架,它们都能很好地完成这一任务。其中:
主干似乎是其中最受欢迎的 使用非常简单的jQuery解决: 在document.ready中:
$('.caption_field').each(function() {
var startval = $(this).val();
$(this).data('setval',startval);
});
然后,在进行ajax调用时:
if (caption == $(this).data('setval')) return; // not changed
当呼叫成功返回时:
field.data('setval',caption);