Подтвердить что ты не робот

Определить изменение состояния флажка

Я хочу определить, проверяет ли пользователь или снимает флажок в пределах iframe и устанавливает такой флаг. Но он работает не так, как ожидалось. Любые указатели на ошибку в коде?

jQuery("#frameName").contents().find(":checkbox").bind('change', function(){        
            val = true;
            alert("changed");
    });

Но я могу определить, установлен ли флажок, используя

var val = jQuery("#frameName").contents().find(":checkbox").is(":checked");

Я хочу, чтобы можно было обнаружить любое изменение состояния на флажке и установить флаг.

4b9b3361

Ответ 1

Используйте свойство checked DOM, чтобы проверить, установлен ли флажок. Событие change всегда срабатывает при изменении, даже если флажок не установлен.

jQuery("#frameName").contents().find(":checkbox").bind('change', function(){        
        val = this.checked; //<---
        alert("changed");
});

Ответ 2

Привязать к событию клика, а не изменять. Флажки работают над кликом.

EDIT: в современных браузерах изменение состояния флажка, будь то с помощью мыши или клавиатуры, вызывает по меньшей мере события click и change.

См. jsFiddle demo Я построил для доказательства. Использование клавиатуры также вызывает некоторые связанные с ключом события, помимо click и change.