Я очень неопытный программист jQuery не смог найти ошибку в моем тривиальном скрипте. Не могли бы вы помочь?jQuery .data() не возвращает логическое значение; Зачем?
Я хочу подчеркнуть флажок, если его состояние отличается от начального значения. Это начальное значение сохраняется как атрибут data-init
. Сгенерированный HTML для проверяемого и неконтролируемого ввода выглядит следующим образом:
<td><input checked data-init id="controls-0-modeU" name="controls-0-modeU" type="checkbox" value="y"></td>
<td><input id="controls-1-modeU" name="controls-1-modeU" type="checkbox" value="y"></td>
В принятом ответе здесь: Retrieve boolean data from data attribute in jquery есть: "метод JQuery .data()
умен о признании логических и числовых значений и преобразует их в свой собственный тип ". Это то, что я хочу.
Мой сценарий начинается с:
$(document).ready(function(){
$("td input:checkbox").change(function(){
var $init = $(this).data("init")
Но значение $init
либо undefined
(для первоначально неконтролируемого входа) или пустая строка (для первоначально проверяется). Оба они оцениваются как ложные. Почему я не получаю true/false вместо этого?
re не является атрибутом 'data-init' на флажке ... –
и есть несколько флажков, и ваш код является неполным. – Riddler
Ваша 'data-init' не имела значения. Только пустой атрибут для флажка «checked»? Чего вы хотите достичь? –