2017-06-16 50 views
1

我有兩個頁面,比方說ParentPage.aspx和ChildPage.aspx。在ParentPage.aspx中我有一個hiddenField,我們稱之爲hidField1檢測從子頁面對父頁面中隱藏字段所做的更改JQuery

<input type="hidden" name="hidField1" id="hidField1" value="0" runat="server" /> 

那麼我打開ChildPage使用ParentPage.aspx中的以下函數。

function myFunc(){ 
    var url = "ChildPage.aspx"; 
    window.open(url,'_blank'); 
} 

然後在父頁面進行一些處理之後,hideField1值會從0

我需要能夠從ChildPage.aspx跟蹤這1變化。目前我正在一個setInterval功能與1000毫秒設置爲內部$(document).ready(function() {...});間隔以下是我迄今爲止

setInterval(function() { 
      var hideField1= $("#hideField1", window.opener.document).val(); 
      if (hideField1 == "1") { 
       console.log("change detected now reset from child!!!"); 
       $("#hideField1", window.opener.document).val("0"); 
      } 
     }, 1000); 

可正常工作,我可以從子頁面看時,有父頁變化也可以從子頁面更改父頁面的隱藏字段值。但這意味着這個setInterval函數將每秒運行一次以檢測這種變化。

我該如何做到這一點jQuery而不必使用setInterval函數。任何幫助,非常感謝。

回答

2

使用事件監聽器,可以通過以下操作在jQuery中完成此操作; https://jsfiddle.net/w2kLto71/

const hidden = $('#hidden'); 

hidden.on('change', function(e) { 
    const target = $(e.target); // if you need jquery, if not e.target.value 
    alert(target.val()); 
    // conditional 
}) 
+0

我提前道歉,如果我沒有理解你的答案,但我看不到你的答案,我有這麼遠,直到該值在父改變,這也一次又一次地重複本身有什麼區別頁。我想要發生的事情是觸發這個功能,當父頁面中的隱藏字段發生變化,以防止子頁面運行定時器來檢測更改 –

+0

@PissuPusa我的歉意。我已經更新了使用eventListeners的答案,因此我們將聽取該輸入中發生的更改。 – Perspective

相關問題