我正在尝试使用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()框
答案 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进行事件处理。