【问题标题】:Call click() of RadButton in JavaScript在 JavaScript 中调用 RadButton 的 click()
【发布时间】:2014-06-26 13:20:13
【问题描述】:

我有一个 iFrame,其中包含一个 RadButton。 ID 是 btnTest。

现在,我尝试从 iFrame 外部调用此 RadButton 的单击方法。我试过了:

function SaveClick() {
    var iframe = document.getElementById('ifr');
    alert(iframe.id);
    var doc = iframe.contentWindow.document;
    if(doc) {
        alert('aaa');
    }
    //var btn = doc.getElementById('<%=btnTest.ClientID %>');
    var btn = $find('<%=btnTest.ClientID %>', doc);
    if(!btn) {
        alert('bbb');
    }
    btn.click();
}

但没有任何效果。

我可以获得 iFrame(iFrame 的 id 显示在第一个警报中),并且“aaa”也显示在第二个警报中。但是我无法获得 btn(由于 if 中没有,所以也显示了带有“bbb”的第三个警报)。

谁能帮帮我,如何获得控制权?

【问题讨论】:

    标签: javascript asp.net iframe telerik


    【解决方案1】:

    在您放入 iframe 的页面中创建一个函数。此函数将返回对按钮的引用。

    var btn = iframe.contentWindow.getMyRadButton();
    btn.click();
    

    getMyRadButton 类似于

    function getMyRadButton() {
     return $find("<%=RadButton1.ClientID%>");
    }
    

    【讨论】:

      【解决方案2】:

      你使用onclick,例如:

      document.getElementById("ele").onclick = function(){
          alert("Hello World");
      }
      
      document.getElementById("ele").onclick();
      

      你应该为 onclick 的那个元素创建一个函数。

      http://jsfiddle.net/3RTGL/1/

      【讨论】:

      • 啊,是的——但问题出在那个错误之前。我无法获得 RadButton。变量 btn 始终为 false。
      • 那我推荐变量检查,可能有一个小的打字错误。确保 &lt;%=btnTest.ClientID %&gt; 在 asp 中定义。
      • 我在 asp 中声明了 Button,例如 &lt;julMD:JulitecSaveButton ID="btnTest" runat="server"&gt;&lt;/julMD:JulitecSaveButton&gt;,其中 JulitecSaveButton 继承自 Telerik RadButton
      • JulitecSaveButton 在服务器端的 CodeBehind 中有一个附加的事件处理程序,应该在最后调用。
      • 在 jQuery 中注意,对于 ID,您需要在前面有一个 #。这行得通吗:$find('#'+'&lt;%=btnTest.ClientID %&gt;', doc); ?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-04
      • 2023-03-15
      • 2012-12-10
      • 1970-01-01
      • 2016-04-06
      相关资源
      最近更新 更多