Javascript 在Jquery中将标志从一个事件传递到另一个事件

Javascript 在Jquery中将标志从一个事件传递到另一个事件,javascript,jquery,Javascript,Jquery,如果我在id为的表单中有一个文本输入字段,请说“Input\u id”。在加载页面期间,我将使用现有数据填充该字段 在使用id为“form_submit”的按钮提交表单时,我想确定该字段是否有任何更改。因此,我将采取与变更相关的特定行动 In Jquery: $("#input_id").on("keyup",function(){ //set a flag to indicate the field is altered }) $("#form_submit").on("click

如果我在id为的表单中有一个文本输入字段,请说“Input\u id”。在加载页面期间,我将使用现有数据填充该字段

在使用id为“form_submit”的按钮提交表单时,我想确定该字段是否有任何更改。因此,我将采取与变更相关的特定行动

In Jquery:

$("#input_id").on("keyup",function(){
    //set a flag to indicate the field is altered
})

$("#form_submit").on("click",function(){
    //check flag to see if #input_id is changed
}
那么,我如何在一个事件中设置一个标志,并在另一个事件中读取它而不使用全局变量呢


提前感谢

那么为什么不只是一个上限标志呢

var flag = false;
$("#input_id").on("keyup",function(){
  // check stuff ...
  flag = true;
});

$("#form_submit").on("click",function(){
  if (flag) {

  } else {

  }
}
为此,您可以使用
.data()

var submit = $("#form_submit");

$("#input_id").on("keyup",function(){
 submit.data("changed",true);
});

submit.on("click",function(){
   if($(this).data("changed")){ //do something }
}

一个选项是使用表单数据属性:

$("#input_id").on("keyup",function(){
    //set a flag to indicate the field is altered
    $(this).closest('form').data('changed',true);
})

$("#form_submit").on("click",function(){
    //check flag to see if #input_id is changed
    console.log($(this).closest('form').data('changed'));
}

那么问题是什么呢?我想在一个事件中设置一个标志,然后在另一个事件中读取它。我该怎么做呢?如果您只需选择将当前值与
defaultValue
属性进行比较的简单选项,那么您不需要传递任何信息。(请注意,这是HTML元素对象的属性,而不是jQuery对象的属性-因此您必须在访问该属性之前取消引用它,
$(“#input_id”)[0]。defaultValue
)我考虑过这个选项。但我不想使用全球variables@BarathBushan很乐意帮忙!:)
我想确定字段是否有任何更改
,如果用户在回滚更改后做了一些更改,那么这个技巧将被证明是错误的。在我的场景中,只需标记尝试的编辑就可以了suffice@BarathBushan...then请对问题做一些编辑。@KartikeyaKhosla,编辑。感谢Hanks演示了“最近的”功能