Jquery无法找到动态创建的radiobuttons

时间:2013-03-05 14:21:55

标签: jquery asp.net radio-button

我正在尝试使用radiobuttons列表,当用户点击其中一个时,我想要提醒(“警告信息”)。

我创建了一个静态radiobutton,如果我点击它,我可以看到Alert()框。但是,如果我单击动态创建的单选按钮,则Alert()不会显示。

这里是静态radiobutton,这会触发Alert()

<input type="radio" class="radio_profile" name="radio_profile" id="radio_profile_not_found" value="0">

这是在webmethod中创建的,这不会触发Alert()

 rtn_str = "<input type='radio' class='radio_profile' name='radio_profile' id='radio_profile_" + dr["ProfessionalID"].ToString() + "' value='" + dr["ProfessionalID"].ToString() + "' >"

这是Jquery代码

$("input[name='radio_profile']").change(function () {
     alert('Warning Message');
});

请您帮我修复动态创建的单选按钮以触发Alert()框

4 个答案:

答案 0 :(得分:4)

您需要将event delegation.on()功能一起使用:

$(document).on('change', 'input[name="radio_profile"]', function(e) {
    alert('Warning Message');
});

理想情况下,在选择静态(页面加载时存在)元素(而不是document之后,您将调用.on(),该元素将包含所有动态添加的单选按钮。静态元素越接近它们越好。如果没有看到页面的HTML,就很难知道应该是什么元素。

答案 1 :(得分:0)

当函数运行时,change()事件将绑定到与选择器匹配的所有元素。它不了解新元素。你必须运行该函数再次重新绑定事件处理程序 - 或者使用on('change', function(){

JQuery文档解释更多:http://api.jquery.com/on/

答案 2 :(得分:0)

$(document).on("change",'input[name="radio_profile"]',function(){
 alert('Warning Message');
});

答案 3 :(得分:0)

在asp.net中,您可以将属性ClientIDMode =“Static”粘贴到radionbutton控件。这样您就可以使用页面中指定的控件ID。您也可以根据控件ID进行事件处理。