如果我在一个id为“input_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
}
那么如何在一个事件中设置一个标志,并在不使用全局变量的情况下在另一个事件中读取它?
提前致谢
答案 0 :(得分:5)
一种选择是使用表单数据属性:
$("#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'));
}
答案 1 :(得分:3)
那么为什么不只是一个上限范围标志?
var flag = false;
$("#input_id").on("keyup",function(){
// check stuff ...
flag = true;
});
$("#form_submit").on("click",function(){
if (flag) {
} else {
}
}
答案 2 :(得分:3)
您可以将.data()
用于此目的,
var submit = $("#form_submit");
$("#input_id").on("keyup",function(){
submit.data("changed",true);
});
submit.on("click",function(){
if($(this).data("changed")){ //do something }
}