Form Submit не работает в FireFox

Верстая очередную HTML страничку, случайно наткнулся на интересную особенность FireFox. Оказывается, при определенных манипуляциях (или положении звезд) в FireFox не будет срабатывать кнопка Submit (<input type=”submit” />).

Расскажу об этом поподробнее, с пошаговыми инструкциями :).

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

Итак, создаем простенькую HTML страничку:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test Page</title>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
  <form action="/login.php" method="post">
  <p>
    <label for="login">Login:</label>
    <input name="login" />
  </p>
  <p>
    <label for="password">Password:</label>
    <input name="password" type="password" />
  </p>
  <p>
    <input type="submit" value="Sign In" />
  </p>
  </form>
</body>
</html>

Открываем ее напрямую с жесткого диска.

firefox-address-bar

Во всех основных браузерах (IE, Opera, Google Crome, Safari и FireFox), и пробуем нажать на кнопку “Sign In”. Почти во всех браузерах произойдет отправка данных формы методом post, на сценарий login.php. И только в одном FireFox этого не произойдет. При нажатии на Submit не произойдет перехода на сценарий указанный в атрибуте action тега form.

Долго пытаясь разобраться в чем же, собственно, проблема – я случайно убрал слэш из атрибута action:

<form action="login.php" method="post">

и, о радость, все заработало. Я был очень удивлен, но когда попробовал этот же файл (с начальным слэшем в атрибуте action) задеплоить на сервер и получить его уже оттуда, то оказалось, что при получении файла с сервера по протоколу http://, а не file:// — все работает правильно во всех браузерах, независимо от того есть слэш в начале или же он отсутствует.

Вот мне интересно – это бага или все же фича Firefox?


заработок в интернете


Категории: Верстка, HTML, CSS  Теги: , ,
  1. 25 февраля 2010 22:43 | №1 | progg.ru

    Form Submit не работает в FireFox | Генеральский чай...

    Thank you for submitting this cool story — Trackback from progg.ru...

  1. 26 февраля 2010 15:54 | №2

    Багом это не является. Так и должно быть. Ставя слэш вы тем самым указываете браузеру что бы он перед ним поставил доменное имя сайта. А при протоколе file:// куда он должен его послать? Да и странно вообще отлаживать работу форм при протоколе file://, пришедшие данные не могут же быть обработаны. Просто разработчики других браузеров видимо включили обработку такой ситуации, а FireFox-а нет. Если интересно можете посмотреть как разные браузеры обрабатывают вот такой код Главная при протоколе file:// .

  2. 26 февраля 2010 15:58 | №3

    Код отобразился в виде ссылки((( Надо у тега a указать атрибут href="/".

  3. 26 февраля 2010 16:32 | №4

    @Островитянин

    Собственно, я и не отлаживал работу с формами через протокол file://, изначально проблема была в другом, не работал определенный JavaScript метод, я начал упрощать разметку HTML и наткнулся на такое необычное поведение. Я так же прекрасно понимаю как работает протокол file и как http, просто странно было, что в остальных браузерах работает.

:D :) ^_^ :( :o 8) ;-( :lol: xD :wink: :evil: :p :whistle: :woot: :sleep: =] :sick: :straight: :ninja: :love: :kiss: :angel: :bandit: :alien: