2015-05-28 108 views
1

代碼:的JavaScript選中複選框不工作

var str = '2,4'; 
var accept_message = str.split(','); 


var accept_message_html = ''; 
var accpet_message_Obj = { 
    1: 'Friends', 
    2: 'Models', 
    3: 'Premiums', 
    4: 'Basics' 
}; 
$.each(accpet_message_Obj, function(key, value) { 
    accept_message_html += '<span style="padding-right:30px;"><input style="float:none;" type="checkbox" name="privacy_options[]"' + (key == accept_message[key] ? ' checked="checked"' : '') + ' value="' + key + '" /> ' + value + '</span>\n'; 
}); 

$('#content-area').html(accept_message_html); 

以上編碼不工作。我需要checkbox檢查其值是24但沒有選擇複選框。 :(

JSFIDDLE

+0

http://jsfiddle.net/satpalsingh/v6br6ydw/ – Satpal

+1

是由於@Satpal – Chinmay235

回答

3

需要使用indexOf(),以檢查是否在accept_message

存在的indexOf()方法返回在該給定元素可以在陣列中被找到的第一個索引,或key -1,如果它不存在。

代碼

accept_message.indexOf(key) > -1 

DEMO

然而,如indexOf()在IE9 +支持,可以使用$.inArray()

搜索一個指定的值的數組內並返回它的索引(或-1,如果未找到) 。

代碼

$.inArray(key, accept_message) > -1 
+0

感謝@Satpal你不錯的答案 – Chinmay235