【问题标题】:ASP.net Radio button click in JQuery在 JQuery 中单击 ASP.net 单选按钮
【发布时间】:2014-02-20 08:02:56
【问题描述】:

我的应用程序中有 asp.net 单选按钮控件,我想用类名在此控件上应用 jquery 单击事件。我已经设置了 CssClass 属性并使用类名制作了脚本,但它不起作用。当我在 firebug 中检查 HTML 时,它使用我提供的 CSSClass 进行跨度 这是我的aspx代码

<asp:RadioButton ID="radioyes" CssClass="quest" GroupName="Ques" runat="server" Text="Yes" />
  <asp:RadioButton ID="radiono" CssClass="quest" GroupName="Ques" runat="server" Text="No" />

它在浏览器中的呈现为

<span class="quest"><input type="radio" value="quest2yes" name="ctl00$ContentBody$Wizard1$Q2" id="ctl00_ContentBody_Wizard1_radioyes"><label for="ctl00_ContentBody_Wizard1_radioyes">Yes</label></span>
    <span class="quest"><input type="radio" value="quest2no" name="ctl00$ContentBody$Wizard1$Q2" id="ctl00_ContentBody_Wizard1_radiono"><label for="ctl00_ContentBody_Wizard1_radiono">No</label></span>

当我在控制台中输入$(".quest").length 时,它也会显示0

我正在尝试这个

$(".quest").click(function(){
});

我也试过

 $('#<%=radioyes.ClientID%>').click(function () {
});

但仍然无法正常工作,甚至在控制台中也没有显示任何错误

【问题讨论】:

  • 您是否将代码包装在 $(document).ready(function(){}); 处理程序中。
  • 是的,它已经在里面了

标签: jquery asp.net


【解决方案1】:

您可能在 dom 元素实际加载到页面之前使用了代码。

将你的函数包裹在$(document).ready(function ()

$(document).ready(function () {
    $(".quest").click(function () {
        alert('s');
    });
});

【讨论】:

    【解决方案2】:

    事件处理程序仅绑定到当前选定的元素;他们 在您的代码调用 .click() 时必须存在于页面上

    在元素实际加载到 DOM 之前,您正在为元素分配事件处理程序。

    所以你必须使用事件委托作为,

    $("document").on("click", ".quest", function () {
        // rest code here
    });
    

    .on()

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      相关资源
      最近更新 更多