【问题标题】:Access dynamic generated radio buttons with jQuery使用 jQuery 访问动态生成的单选按钮
【发布时间】:2018-08-02 06:46:54
【问题描述】:

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

用户可以选择一个单选按钮,但如果用户愿意,则不能取消选择。

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

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

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

所有这些以及更多都不起作用,即使是最后一个解决所有输入控件的问题...

有什么指导方针吗?起点?提示?技巧?

谢谢!

【问题讨论】:

  • 能否请您发布您如何绑定单选按钮的代码

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


【解决方案1】:

除非您尝试访问的 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); 

}

【讨论】:

    【解决方案2】:
    $("#parent_element").on("click", "input[name=radio_button]", function(){
        var radio_button = $(this);
    });
    

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

    【讨论】:

      猜你喜欢
      • 2015-05-15
      • 1970-01-01
      • 2013-08-13
      • 1970-01-01
      • 2015-05-08
      • 2014-07-11
      • 2020-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多