Я создаю некоторые элементы-флажки на лету с помощью jQuery и добавляю их к узлу, например
var topics = ['All','Cat1','Cat2'];
var topicContainer = $('ul#someElementId');
$.each( topics, function( iteration, item )
{
topicContainer.append(
$(document.createElement("li"))
.append(
$(document.createElement("input")).attr({
id: 'topicFilter-' + item
,name: item
,value: item
,type: 'checkbox'
,checked:true
})
.click( function( event )
{
var cbox = $(this)[0];
alert( cbox.value );
} )
)
.append(
$(document.createElement('label')).attr({
'for': 'topicFilter' + '-' + item
})
.text( item )
)
)
} );
Проблемы, с которыми я сталкиваюсь, имеют две стороны (есть только в IE)
- Флажки добавляются на страницу, но их состояние по умолчанию не проверяется, когда я указываю 'true' для этого значения. (Тестирование с проверенным значением не имеет значения)
- Когда
alert( cbox.value );
выполняется, вывод «включен», каждый раз.
Я думаю, что основная проблема здесь в том, что мне нужен лучший способ установить состояние флажков по умолчанию и установить их атрибут "значение" по умолчанию. Но я еще не нашел другого пути.
Примечание: весь этот код прекрасно работает в Firefox и Chrome.
Это тестирование jQuery 1.3.1 с IE 7.0.5730.11