Javascript 在Jquery中将标志从一个事件传递到另一个事件
如果我在id为的表单中有一个文本输入字段,请说“Input\u id”。在加载页面期间,我将使用现有数据填充该字段 在使用id为“form_submit”的按钮提交表单时,我想确定该字段是否有任何更改。因此,我将采取与变更相关的特定行动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
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演示了“最近的”功能