来自子页面的父页面隐藏字段上的触发事件

时间:2017-06-19 03:28:35

标签: javascript jquery

我引用了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. 隐藏字段值从子页面更改
  3. 对于方案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");
    }
    

    但这并没有触发重新加载。

    非常感谢任何帮助!

1 个答案:

答案 0 :(得分: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");
}