Если вы не против использования существующего инструментария, jQuery UI Button может превратить флажки в пользовательские кнопки, поддерживающие четыре основных визуальных состояния (плюс еще одно состояние наведения):
Однако, чтобы иметь возможность использовать эту функцию так, как вы хотите (используя атрибут value
в качестве метки), вам нужно будет присвоить id
атрибуты своим флажкам и добавить элементы <label>
, которые обратитесь к этим идентификаторам и представьте значение их флажка как их внутренний текст. Вы можете изменить разметку вручную:
<input type="checkbox" id="nutri" name="nutri" value="select">
<label for="nutri">select</label>
Или изменить его динамически:
$("input:checkbox").each(function(index) {
$("<label>").text(this.value)
.attr("for", this.id = "checkbox" + index + 1)
.insertAfter(this);
});
С этого момента это так же просто, как вызвать button()
на флажке или buttonset()
на контейнере. Конечно, если ни одна из стандартных тем jQuery UI не подходит для вашего проекта, вы можете создать свой собственный стиль для каждого визуального состояния с помощью ThemeRoller .
Вы можете найти живое демо в этой скрипке .