2017-06-19 52 views
0

我引用了here,但提供的解决方案不适合我,因此我发布了类似于此的问题。从子页面的父页面隐藏字段上的触发事件

我有有一个隐藏的领域像下面父页面:

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

然后,我有扳机$(document).ready(function(){}}...如下创建:

$("#reloadCalPreview").on('reload-change', function() { 
    console.log('reload-change event triggered.'); 
    var reloadCalPreview = $("#reloadCalPreview").val(); 
    if (reloadCalPreview == "1") { 
    GetUserCalPreview(); 
    $("#reloadCalPreview").val("0"); 
    } 
}); 

所以这应该是触发一次改变发生在隐藏的领域。

然后有两种情况对我来说:

  1. 隐藏字段值将被从父页改变
  2. 隐藏字段值将被从子页面

改变对于方案1,我我正在使用以下代码触发reload-calendar事件:

function appAdded(){ 
    $("#resetCalendarRequired").val("1").trigger("reload-change"); 
} 

按预期触发reload-change事件。

所以对于场景2,子页面有一个函数调用是这样的:

function manageEvent() { 
    var reloadCalPreview = $("#reloadCalPreview", window.parent.document); 
    reloadCalPreview.val("1").trigger("reload-change"); 
} 

但这并不触发重载变化。

任何帮助非常感谢!

回答

0

你尝试过这样的:

function manageEvent() { 
    var reloadCalPreview = window.parent.document.getElementById('reloadCalPreview'); 

    // debug purpose, to make sure that the element is accessible 
    console.log("reloadCalPreview: " + reloadCalPreview); 

    // invoking the event 
    $(reloadCalPreview).val("1").trigger("reload-change"); 
} 
+0

是的,我的元素是可访问的,但触发没有发生 –