Как отменить действие события onchange?

Предположим, на странице есть input type="file" или select. Как сделать, чтобы при определенных действиях запретить изменение содержимого этих элементов?
return false и event.preventDefault() не работают
  • Вопрос задан
  • 4367 просмотров
Пригласить эксперта
Ответы на вопрос 4
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
Если я правильно понял добавляйте атрибут disabled.
<input type="file" disabled>
<select name="" id="" disabled>
    <option value="">1</option>
</select>

jsfiddle.net/8cyLV
Если нет - поясните, что имеете в виду и для чего.
Ответ написан
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
Вы хотите знать значение до того, как сделан выбор. В частности, селект еще не выбран, а Вы уже хотите получить значение и сделать селект не активным.
Единственный выход - или убирать option в зависимости от выбора в предыдущих селектах, или делать как в примере - выберите 2 и селект скинется на пустое значение.
jsfiddle.net/8cyLV/1
Ответ написан
benderskiy
@benderskiy
Дело в том, что событие change у input срабатывает тогда, когда файл уже выбран. Т.е. превентить уже нечего. Вам нужно по условию обнулить значение выбора. Например, так:
$('input[type="file"]').on('change', function(event) {
    $(this).val(null);
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы