Интересный вопрос!
Существует только одна проблема, которую я вижу при использовании изображений вместо обычных флажков, и именно поэтому флажки active будут отличаться от отключенных(на основе изображения) флажки.Так что, если вы пойдете по маршруту с изображением, вы, вероятно, захотите установить все флажки.:)
Вы можете эффективно отключить любой флажок с помощью следующего метода jQuery (пока что я тестировал только в Chrome и IE 9).
$('.readonly:checkbox').click(function(e) {
e.preventDefault();
});
Это «отключит» любой флажок с помощью класса «только для чтения».
Или вы можете использовать встроенную функцию JavaScript (не рекомендуется использовать albiet, поскольку она добавляет беспорядок и путаницу):
<input type="checkbox" onclick="event.preventDefault();" />
Причина, по которой вы будете использовать «protectDefault ()» вместо «return false», заключается в том, что возвращение false остановит распространение.Это означает, что ваше событие щелчка не будет пузыриться на родительский элемент.Это может вызвать проблемы с другим кодом ... но это маловероятно.
Кроме того, как упомянул Bala R, вы не должны полагаться на эти ограничения для работы.Ваш серверный код должен знать, что эти значения доступны только для чтения, и воздерживаться от их обновления.
Вот пример jsFiddle: http://jsfiddle.net/xixionia/3rXCB/
Надеюсь, это полезно!:)