0

我正在尝试有一个单选按钮列表,当用户单击其中一个时,我想要 Alert("Warning message") 。

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

这是静态单选按钮,这会触发 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

4 回答 4

4

您需要将事件委托与以下.on()功能一起使用:

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

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

于 2013-03-05T14:24:26.353 回答
0

函数运行时,该change()事件将绑定到与选择器匹配的所有元素。它不知道新元素。您将不得不运行该函数以再次重新绑定事件处理程序 - 或使用on('change', function(){.

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

于 2013-03-05T14:24:03.133 回答
0
$(document).on("change",'input[name="radio_profile"]',function(){
 alert('Warning Message');
});
于 2013-03-05T14:24:31.533 回答
0

在 asp.net 中,您可以将属性 ClientIDMode="Static" 粘贴到单选按钮控件。这样您就可以使用页面中指定的控件 ID。您还可以根据控件 ID 进行事件处理。

于 2013-03-05T14:28:42.233 回答