Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Беда с кнопками в IE

8
09 июня 2011 года
mfender
3.5K / / 15.06.2005
Очень хочется иногда кого-нибудь пристрелить.

Это эпиграф.

Чёрт возьми, ну почему на исправление корявостей во всех браузерах кроме IE уходит в совокупности меньше времени, чем на один только пресловутый IE? Вредительство какое-то!
© Л.И.Брежнев

Сейчас столкнулся с пренеприятнейшей забавой этого микростуффового Голиафа: при нажатии на Enter он находит первую попавшуюся по списку кнопку (button), и отрабатывает её. И наплевать ему, что я работаю в таблице (грид, решётка), в которой сидят input'ы типа text, которым прилеплено действие по нажатию Enter. он сначала выполняет то что я хочу, а потом всё равно нажимает кнопку.

Что делать? Доколе? Когда перестанут быть дураки на дорогах? и ещё дюжина традиционных российских вопросов.
366
09 июня 2011 года
int
668 / / 30.03.2005
Чтение мануалов ещё никому не мешало

Это предисловие

Сперва воспользуйся поиском в интернете, потом спрашивай у людей банальные вещи
Франклин Рузвельдт

Если уж спрашиваешь кого-то, не начинай разговор с родословной Иисуса, пиши сразу по делу
Усама бен Мухаммад бен Авад бен Ладен

Указание имени известного человека под выдуманной фразой, не делает её смешнее или актуальнее
Юрий Никулин

Для нормальных браузеров event.preventDefault(), для IE это window.event.returnValue=false

Что делать? Доколе люди будут пытаться программировать, не читая документации? У нас проложили новую дорогу к приезду путина, когда же возьмутся за вторую беду?
369
09 июня 2011 года
Kesano
451 / / 09.10.2007
Наверняка у вас всё это находится в <form ...> ... </form>

Решение банально:
<form onsubmit="return false;" ...>
...
</form>

Пояснение. Дефолтове действие по нажатию Энтера на любом input в форме (кроме textarea, про другие не знаю) - это отправка формы серверу, т.е действие submit ...

Я вижу проблему так, по крайней мере...
8
09 июня 2011 года
mfender
3.5K / / 15.06.2005
Цитата: int
Чтение мануалов ещё никому не мешало

Это предисловие


Сумничал?

Ты вопрос-то читал, прежде чем меня учить курить документации?

Ещё раз прочитай, а потом войди снова и ответь на поставленный вопрос.

8
09 июня 2011 года
mfender
3.5K / / 15.06.2005
Цитата: Kesano
Наверняка у вас всё это находится в <form ...> ... </form>

Решение банально:
<form onsubmit="return false;" ...>
...
</form>

Пояснение. Дефолтове действие по нажатию Энтера на любом input в форме (кроме textarea, про другие не знаю) - это отправка формы серверу, т.е действие submit ...

Я вижу проблему так, по крайней мере...



Во всей body нет ни одного form.


P.S. Вы меня за лоха что-ли тут все держите?
Ведь написано чёрным по серому: проблема с поведением IE.
У меня нет проблем с кнопками. Чтобы не мучаться я просто заменил их на A, потом просто сделал UL с кнопками LI и это даже IE не победит.

Но вопрос-то был о сумасшествии IE, не более того. А вы меня тут все кинулись учить читать мануалы.

274
09 июня 2011 года
Lone Wolf
1.3K / / 26.11.2006
схожу ничего в голову не приходит...
повесь чтоли на все батоны перехватчик нажатия клавиш, и отсеюй нафиг в нужном случае.
366
10 июня 2011 года
int
668 / / 30.03.2005
То есть вариант с перехватом стандартного действия браузера не подошёл?

Если IE сумасшедший, отправь его в карантин. С сумасшедшими не пристало разговаривать на нормальном языке.
369
10 июня 2011 года
Kesano
451 / / 09.10.2007
Цитата: mfender

P.S. Вы меня за лоха что-ли тут все держите?



А ты что тут всех за гипнотизеров держишь?
Код в студию.

8
10 июня 2011 года
mfender
3.5K / / 15.06.2005
Цитата: Kesano
А ты что тут всех за гипнотизеров держишь?
Код в студию.


:D

 
Код:
<button>Кнопка</button>
277
10 июня 2011 года
arrjj
1.7K / / 26.01.2011
ie8 всё норм. Покажи полный код странички.
13
10 июня 2011 года
RussianSpy
3.0K / / 04.07.2006
mfender - не найдешь ты тут ответа. Твоя проблема находится за гранью опыта и знаний подавляющего числа участников этой ветки.

ЗЫ Кстати что именно происходит когда нажимается кнопка? почему это так критично? и какой ИЕ? 8? 9?
8
11 июня 2011 года
mfender
3.5K / / 15.06.2005
Цитата: RussianSpy
mfender - не найдешь ты тут ответа. Твоя проблема находится за гранью опыта и знаний подавляющего числа участников этой ветки.

ЗЫ Кстати что именно происходит когда нажимается кнопка? почему это так критично? и какой ИЕ? 8? 9?


IE8. Вобщем, на INPUT стоит обработчик, который по mousedown ENTER сохраняет value и переходит на следующий INPUT. Всё так и происходит, Только потом он находит первый попавшийся button и "нажимает" его.

P.S. С IE9 вообще беда бедовая! Там видимо с CSS совсем плохо: float чудовищно себя ведёт, z-index со странностями… Это я случайно вчера узнал, зайдя к шефу, а у него Win7 и IE9. Он Win7 использует из-за удобной экранной лупы только. Мда, теперь я прямо руками развожу в незнании что делать. Придётся себе Win7 ставить с IE9 и экспериментировать на ём, раз уж такое грубое поведение у этого браузера.

277
11 июня 2011 года
arrjj
1.7K / / 26.01.2011
Может всётки покажешь код странички?
369
11 июня 2011 года
Kesano
451 / / 09.10.2007
Цитата: mfender

Придётся себе Win7 ставить с IE9 и экспериментировать на ём, раз уж такое грубое поведение у этого браузера.



Потому что нужно читать учебники по кроссбраузерному HTML и CSS коду.

13
11 июня 2011 года
RussianSpy
3.0K / / 04.07.2006
Цитата: Kesano
Потому что нужно читать учебники по кроссбраузерному HTML и CSS коду.


Вот и займитесь чтением, раз вы не знаете кто такой mfender что даете ему банальные советы, как какому-нибудь ламеру или нубу.

Цитата:
Вобщем, на INPUT стоит обработчик, который по mousedown ENTER сохраняет value и переходит на следующий INPUT. Всё так и происходит, Только потом он находит первый попавшийся button и "нажимает" его.


Теперь мне больше понятно. Не берусь утверждать, но моя теория такова, что ИЕ в DOM превращает <button> в обычный input. И следовательно поскольку сохраняет value и переходит на следующий INPUT, то для ИЕ нет разницы между <input type="button"> и <button>. Следовательно решение может быть таким - всем инпутам, на которые должен переходить фокус задать class, по которому и проводить поиск.

8
12 июня 2011 года
mfender
3.5K / / 15.06.2005
Цитата: RussianSpy

Теперь мне больше понятно. Не берусь утверждать, но моя теория такова, что ИЕ в DOM превращает <button> в обычный input. И следовательно поскольку сохраняет value и переходит на следующий INPUT, то для ИЕ нет разницы между <input type="button"> и <button>. Следовательно решение может быть таким - всем инпутам, на которые должен переходить фокус задать class, по которому и проводить поиск.


Собственно, так я и сделал. Принципиальной разницы нет, что там будет. Я сделал <a role='button'></a>, и соответствующим образом разрисовал её поведение. IE её самопроизвольно не нажимает ))))

8
12 июня 2011 года
mfender
3.5K / / 15.06.2005
Цитата: Kesano
Потому что нужно читать учебники по кроссбраузерному HTML и CSS коду.


и что эти умные учебники говорят про float конкретно в IE9? наверное советуют не мучиться с блоками, а тупо запихивать всё в таблицы?

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог