如何在RadioButton-Selection上调用Javascript函数?

时间:2016-08-22 08:14:28

标签: javascript c# jquery asp.net

这就是我的RadioButtonList看起来的样子(ASP.NET):

<asp:RadioButtonList ID="RadioButtonListGutscheinArt" Visible="true" runat="server">
      <asp:ListItem ID="ListItemZugAbonnement" Value="1" Selected="True" />
      <asp:ListItem ID="ListItemBestellungHalbtax" Text="Bestellung Halbtax" Value="2" />
</asp:RadioButtonList>

我还创建了一个名为backendClick()的Javascript函数,它可以激活我页面上的元素....

function backendClick() {
            $("#PanelPassnummer").fadeIn();
            $("#textbox").animate({ height: '795px' }, "slow");
            $('#Wrapper').animate({ paddingBottom: '20%' }, "slow");
            $('html,body').animate({ scrollTop: $("#weiterButtonAbstand").offset().top }, "slow");
            $('#weiterButtonAbstand').animate({ marginBottom: '8%' }, "slow");
}

我的目标是在选择backendClick()时执行功能ListItemBestellungHalbtax NOT CLICKED ,该功能将在页面重新加载时执行,因此在页面加载时已经选择了该按钮。

现在我的C#代码落后了,我尝试了这样:(在protected void Page_Load

if(RadioButtonListGutscheinArt.SelectedValue == Convert.ToString(2))
  {
          Page.ClientScript.RegisterStartupScript(this.GetType(), "Callfunction", "backendClick()", true);     

  }

但没有成功...... 关于如何做的任何建议?如果需要进一步的信息,请告诉我..谢谢

2 个答案:

答案 0 :(得分:1)

当使用asp控件时,客户端的ID会发生变化,这就解释了为什么你的jquery函数不起作用。 您应该将ClientIDMode="Static"添加到您的asp控件中以保留相同的ID。

所以试试这个:

<asp:RadioButtonList ID="RadioButtonListGutscheinArt" ClientIDMode="Static" Visible="true" runat="server">
      <asp:ListItem ID="ListItemZugAbonnement" ClientIDMode="Static" Value="1" Selected="True" />
      <asp:ListItem ID="ListItemBestellungHalbtax" ClientIDMode="Static" Text="Bestellung Halbtax" Value="2" />
</asp:RadioButtonList>

现在JQuery选择器将适合您。试试这个:

$('#RadioButtonListGutscheinArt input').change(
    function(event){
        if ($(this).is(':checked') && event.target.id=="ListItemBestellungHalbtax") {
            backendClick();
        }
    });

为了在每次重新加载页面时调用该函数,您可以使用:

$(document).ready(function(){
   backendClick();
   //will check the radio button every time
   $('#ListItemBestellungHalbtax').attr('checked', true);
});
祝你好运。

答案 1 :(得分:0)

只需在aspx页面上放置一个脚本块,其中包含以下内容:

$(function() {
    if($("#<%=ListItemBestellungHalbtax.ClientID %>").is(':checked')) {
        backendClick();
    }
})

如果你正在使用ClientIDMode="Static",那么你可以省略#<%=ListItemBestellungHalbtax.ClientID %>来电并只使用常规的Id值。