2013-04-09 60 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