簡體   English   中英

如何通過JQuery或Javascript以編程方式調用服務器單擊

[英]How do you programmatically Invoke a Server Click via JQuery or Javascript

我在用戶控件上有一個ASP Server按鈕,該按鈕可觸發正常工作的服務器端OnClick事件。 但是我需要使用JavaScript或JQuery觸發OnClick事件。

我嘗試了以下方法,但是都沒有像用戶要實際單擊按鈕那樣實際模擬結果:

document.getElementById('<%=btnRefresh.ClientID%>').click();
$('#<%=btnRefresh.ClientID %>').click();

我懷疑這可能是因為它模擬了OnClientClick事件,而不是服務器。 但我發現這種說法對成功觸發服務器端OnClick事件的其他人有用,但對我而言卻無效。

還有其他方法可以完成任務嗎?


回應AJAX的建議。 我已經嘗試過這種方法,但是要成功完成此任務,需要使用PostBack。 實際單擊按鈕會產生所需的結果,我可以使事件使用AJAX觸發,但如果沒有PostBack元素,它將失敗。

我有一個ASP服務器按鈕

所以你有類似的東西

<asp:Button ID="btnRefresh" Text="I'm a button" OnClick="btnRefresh_Click" />

為了也執行客戶端調用,在服務器調用之前,您需要做的就是將函數或內聯代碼附加到OnClientClick屬性上:

<asp:Button ID="btnRefresh" 
          Text="I'm a button" 
       OnClick="btnRefresh_Click"
 OnClientClick="btnRefreshClick" />

並在您的javascript中簡單地添加該方法

function btnRefreshClick() {

    // your stuff goes here...

    return true; // returning true (or nothing) will fire the server side click
                 // returning false will not fire it
}

補充:誤解了這個問題,因此您想觸發一個JavaScript事件,該事件將自動click按鈕...

我剛剛測試了這段代碼:

<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /><br />
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        <br/>
        <a href="#" class="a">fire button click event</a>
    </div>
    </form>

    <script>
        $(".a").click(function() {
            //var elm = $("#" + "<%= Button1.ClientID %>"); elm.click(); // with jQuery

            var elm = document.getElementById('<%=Button1.ClientID%>');
            elm.click();
        });
    </script>
</body>

而且無論是否使用jQuery,我都能正確觸發按鈕:

正在執行的截屏視頻: http : //screencast.com/t/m4ohA9uW

暫無
暫無

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

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