使用jQuery访问动态生成的单选按钮

时间:2018-02-22 12:09:55

标签: javascript jquery asp.net-mvc radio-button

我有一个包含1个日期选择器的MVC网页。选择日期后,会向服务器发出一个AJAX调用,为用户提供可能的操作列表(作为单选按钮)

用户可以选择单选按钮,但如果用户需要,则无法取消选择。

我尝试使用一些javascript代码解决这个问题,但是当我通过AJAX调用在部分结果中动态生成时,我似乎无法访问这些单选按钮。

非常重要,最大的问题是原始表单上没有单选按钮。因此我认为我无法访问它们。

$('#nameofradiobutton') 
$('input[name='nameofradiobutton'])
$('input[type=radio])
$('input')

所有这些以及更多内容甚至不能解决所有输入控件的最后一个......

任何指导方针?起点?提示?花样?

谢谢!

2 个答案:

答案 0 :(得分:0)

除了您尝试访问的DOM元素是否在iframe中之外,您不应该有任何理由无法访问它。我能想到为什么你不能访问它的唯一原因是因为你在它被添加到页面之前尝试访问它,所以例如你有ajax回调调用函数dowork它看起来像这样:

function dowork(){

//add the radio buttons 
$('.myradiocontainer').append($('<input type="radio" id="value1" />'));

//you try to check it here but it doesn't work
$('#value1').prop("checked", true);

}

如果是这种情况,那么你可以改为:

function dowork(){

//add the radio buttons 
$radio1= $('<input type="radio" id="value1" />');
$('.myradiocontainer').append($radio1);

//you try to check it here and it works
$radio1.prop("checked", true); 

}

答案 1 :(得分:0)

$("#parent_element").on("click", "input[name=radio_button]", function(){
    var radio_button = $(this);
});

其中parent_element是单选按钮的父级,不是动态的(加载dom时存在)。 radio_button是单选按钮的名称。变量radio_button保存实际的单选按钮元素。