2013-04-09 69 views
1

所以呃,当我用phonegap制作手机应用程序(并使用jsconsole.com进行调试)时,当我试图访问输入复选框并根据某些场景使用JQuery“检查”它时遇到了这个bizzare问题。这个问题是很多比不过更多的神秘......使用.find()或选择复选框时Bizzare Jquery(Mobile)错误?

基本的HTML是这样的,从Adnroid内模拟器运行(一个JQM页面内):

<div data-role="controlgroup" data-type="horizontal" id="settings_bar"> 
    <input type="checkbox" name="isAFav" id="isAFav"> 
    <label for="isAFav">Favourite</label> 
    <a href="#" data-role="button" data-icon="delete" data-iconpos="right" onclick="app.delete()">Delete</a> 
</div> 

页面加载时显示内容我想调整与它看起来像这样的功能所显示的信息:

if(isAFav){ // <-local variable from my runtime - it's valid 
    try{ 
     var fav = $('#settings_bar').find("#isAFav"); 
     fav.attr('checked', 'true'); 
     fav.button('refresh'); 
    }catch(Err){ 
     console.log(err.message()); 
    } 
} 

的神秘的错误,它抛出是这样的:

在不能进行选择的输入元素上访问selectionEnd。

完全一样的事情发生了的众多:

$("#route_settings_bar").children('input'); 
$('input[name="isAFav"]'); 

我不知道这到底是怎么了。我使用最新的Jquery + mobile(分别为1.9.1 & 1.3.0)。

为了增加混乱,我以前命名的输入为“最爱”的形式/ ID,当我跑了相应的代码:

$('input[name="fav"]'); 
$("#route_settings_bar").children('input[name="fav"]'); //or this 

我们得到这样的: enter image description here

要我这看起来像JqueryMobile代码...什么%^^^^^^^^^^?如果有人有任何提示或建议,请帮助!谢谢!

P.S.我现在正在使用不同的jsconsole ID。

+0

决定去解决这个问题:http://stackoverflow.com/questions/12095559/change-controlgroup-active - 按钮主题 但是,这仍然不能解释这个疯狂的错误 - 如果任何人有任何解释 - 问题仍然是开放的,因为它是上述原因我想查明! – Nisk 2013-04-10 17:46:54

回答

1

这是使用.prop检查/取消选中复选框/单选按钮'并使用.checkboxradio('refresh')刷新它的正确方法。

if(isAFav){ 
try{ 
    var fav = $('#settings_bar').find("#isAFav"); 
    fav.prop('checked', true); // here 
    fav.checkboxradio('refresh'); // here 
    // OR 
    // fav.prop('checked', true).checkboxradio('refresh'); 
}catch(Err){ 
    console.log(err.message()); 
} 
} 
+0

问题不在于设置“已检查”状态 - 但是通过选择输入字段本身,请参阅我收到的废话图像! – Nisk 2013-04-10 11:05:48

+0

奇怪的是,我通过它的'name'属性选择了输入字段,它工作。 @Nisk – Omar 2013-04-10 13:00:58

+0

我知道,这是奇怪的 - 我的意思是,我们得到JQM功能代码! – Nisk 2013-04-10 13:21:47