Я сделал несколько симпатичных флажков, используя несколько довольно простых jQuery
HTML
<span class="iconElement checkBox" id="update_Check"></span>
<input type="text" id="update" name="update" value="0" class="hidden savedData" />
JS
$('.checkBox').live('click', function (e) {
if ($(this).hasClass('disabled') != true) {
$(this).toggleClass('checked')
var thisValue = parseInt($(this).next().val());
var newValue = (thisValue - 1) * (-1); // enusures the output is either 1 or 0, [ (1-1)*-1=0 and (0-1)*-1 =1 ]
$(this).next().val(newValue);
};
});
Это просто диапазон с хорошим CSSфоновый спрайт, который при нажатии изменяет переключение своего «проверенного» класса, настраивая спрайт CSS из «Tick» в пустое поле.В то же время он также изменяет содержимое текстового поля (скрытого классом CSS «hidden») на 1 или 0, чтобы указать, установлен ли флажок.
Он должен иметь это 1 или 0так как когда данные передаются на следующий этап, я должен иметь значение, не отмеченный флажок не отправляет значение.
Это все работает отлично!
НО ... Мне также нужно бытьвозможность обнаружить «изменение» события скрытого текстового поля.
Это должно контролироваться классом "saveData".
$('.savedData').live('change', function () {
// do stuff now we know this has been changed
});
Конечно, я мог бы включить это в событие "click" в приведенном выше коде, но это непрактично дляapplication.
Кажется, что "изменение" даже инициируется только элементами, которые изменяются клавиатурой или мышью, все, что изменилось с помощью jQuery, не помечается.
Изначально я использовал скрытыйТип ввода и думал, что это была проблема, но изменили их все на текстовый тип, и проблема все еще там!
Любые советы?!