Предположим, на странице есть input type="file" или select. Как сделать, чтобы при определенных действиях запретить изменение содержимого этих элементов?
return false и event.preventDefault() не работают
Содержимое все равно меняется: jsfiddle.net/3Mt3c/1
Например, мне нужно на клиенте проверять размер файла, и в случае большого размера не допускать попадение этого файла в input.
Например, при выборе определенного значения option не допускать его выбора. Скажем, у нас есть состав блюда. При редактировании состава у нас есть строки таблицы, в каждой строке есть select со всеми возможными продуктами. При изменении значения какого-то селекта, мы циклом проходим по всем и смотрим, есть ли уже такой продукт, и если есть, то запретить его выбор в текущем селекте.
Вопрос старый, но не увидел варианта с блокировкой определённого варианта в select.
Сделать можно просто добавив в соответствующий option атрибут disabled="disabled"
Вы хотите знать значение до того, как сделан выбор. В частности, селект еще не выбран, а Вы уже хотите получить значение и сделать селект не активным.
Единственный выход - или убирать option в зависимости от выбора в предыдущих селектах, или делать как в примере - выберите 2 и селект скинется на пустое значение. jsfiddle.net/8cyLV/1
Дело в том, что событие change у input срабатывает тогда, когда файл уже выбран. Т.е. превентить уже нечего. Вам нужно по условию обнулить значение выбора. Например, так: