1

因此,嗯,在使用 phonegap 制作手机应用程序(并使用 jsconsole.com 进行调试)时,当我尝试访问输入复选框并根据某些情况使用 JQuery“检查”它时遇到了这个奇怪的问题。然而,这个问题比这更神秘......

基本 html 就是这样(在 jqm 页面内),它从 Adnroid Emulator 运行:

<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 命名为“fav”,当我运行相应的代码时:

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

我们得到这个: 在此处输入图像描述

对我来说,这看起来像 JqueryMobile 代码……%&^* 是什么?如果有人有任何提示或建议,请帮助!谢谢!

PS 我现在使用不同的 jsconsole ID。

4

1 回答 1

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());
 }
}
于 2013-04-09T20:22:53.677 回答