簡體   English   中英

在Jquery中將一個標志從一個事件傳遞到另一個事件

[英]Pass a flag from one event to another in Jquery

如果我在一個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
}

那么如何在一個事件中設置一個標志,並在不使用全局變量的情況下在另一個事件中讀取它?

提前致謝

一種選擇是使用表單數據屬性:

$("#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'));
}

那么為什么不只是一個上限范圍旗?

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 }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM