【问题标题】:Check on a dynamically selected radio button检查动态选择的单选按钮
【发布时间】:2014-02-12 12:10:12
【问题描述】:

我目前正在使用 https://github.com/kflorence/jquery-deserialize 和模态运行 Bootstrap。我使用 AJAX 调用从 php 文件中获取表单并将其添加到 HTML 表单中,反序列化数据,然后打开模式。但是,当使用单选按钮时,我不能使用单独的 jQuery 脚本来检查单选按钮是否被选中。检查时总是显示为假

console.log($('#travel_only2').is(':checked'));

但是,如果我尝试使用

输出选择器本身
console.log($('#travel_only2'));

然后它将显示为已选中。我怎样才能等待收音机被检查,或者还有其他选择吗?谢谢!

更新:另外,我只是尝试在控制台本身中使用 $('#travel_only2').is(':checked'),它显示为 true。

更新:我取消了反序列化插件并尝试了这个:

$.each(this, function(name, val){
var $el = $('[name="'+name+'"]'),
type = $el.attr('type');

switch(type){
    case 'checkbox':
        $el.attr('checked', 'checked');
    break;
    case 'radio':
        $el.filter('[value="'+val+'"]').attr('checked', 'checked');
    break;
    default:
        $el.val(val);
}

}); 不幸的是使用 console.log(document.getElementById('travel_only2').checked);显示 false 然后在加载所有内容后在控制台中输入显示 document.getElementById('travel_only2').checked 真的

最后更新:似乎有延迟,因为对模板的 ajax 调用包含了脚本。相反,我在我的主脚本中使用了 $.getScript 来调用模板脚本,并且效果很好。

【问题讨论】:

    标签: javascript php jquery html twitter-bootstrap


    【解决方案1】:

    这只是纯 javascript 试试这个:

    if(document.getElementById('travel_only2').checked) {
          // radio button is checked
        }
    

    编辑

    因为这不起作用,试试这个:

     if($('#travel_only2').prop('checked')){
    //radio button is check
    }
    

    小提琴显示我正在使用的功能。

    http://jsfiddle.net/bgLYL/

    【讨论】:

    • 这似乎不起作用。 console.log(document.getElementById('travel_only2').checked);显示为假。
    • @ashin999 试试我的编辑。这是奇怪的行为。如果真的检查了原版 js,那么它应该返回 true,因此它可能不会被设置。
    • 也是错误的。有没有办法等待反序列化完成,或者必须在插件中实现?因为我认为它有一个,但我无法访问它,因为我在一个单独的 js 文件中工作。
    • 我也是这么想的。怎么检查的值显示为假,但记录选择器对象显示为真?
    • 记录选择器值应该返回一个对象,其中选中的属性是该选择器的属性之一,如果另一个属性也显示为 false,则该对象应该为 false。如果不是这样,那真的很奇怪......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    相关资源
    最近更新 更多