2014-02-12 101 views
1

我目前正在運行引導與https://github.com/kflorence/jquery-deserialize和模態。我使用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);顯示假然後一旦加載顯示到控制檯顯示document.getElementById('travel_only2')。checked true

最後更新:似乎有一個延遲,因爲對模板的ajax調用包含腳本。相反,我使用$ .getScript進入我的主腳本來調用模板腳本,並且完美地工作。

回答

0

這只是純JavaScript試試這個:

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

編輯

由於沒有工作,試試這個:

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

撥弄出我使用的功能。

http://jsfiddle.net/bgLYL/

+0

這似乎沒有工作。的console.log(的document.getElementById( 'travel_only2')進行檢查。);顯示錯誤。 – ashin999

+0

@ ashin999給我編輯一個嘗試。這是奇怪的行爲,但。香草js應該返回true,如果它真的被檢查過,所以它可能不會被設置。 – Thunda

+0

也是錯誤的。有沒有辦法等待反序列化完成,還是必須在插件中實現?因爲我認爲它有一個,但由於我在單獨的js文件中工作,所以無法訪問它。 – ashin999

相關問題