Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];

Вниз

вопросик по HTML ю...   Найти похожие ветки 

 
antonn ©   (2006-10-29 20:11) [0]

если у меня страничка, на которой лежит примерно следующее:
<form action="cs.php" method="post">
<tr><td class="B_B B_L B_T" align="left" width=100%><input type="text" name="text" style="width: 100%; height: 18px;"></TD>
<TD class="B_R B_B B_T"><input type="submit" name="submit" value=">" class="Repbutton" style="width: 18px; height: 18px;"></TD></TR>
</form>

(т.е. по-русски, эдит и баттон, типа поиск).

в cs.php делаю проверку
if(isset($_POST["submit"])){...}

При вводе текста в поле ввода и нажатии кнопку все данные приходят, а если нажать на enter на клавиатуре (фокус на поле ввода), то никаких данных не приходит, просто вызывается cs.php.
При добавлении в <form> еще одного поля <input type="text" ...> все срабатывает и с клавиатуры (т.е. по нажатию на enter данные приходят).
Кто нибудь с этим сталкивался?


 
antonn ©   (2006-10-29 20:16) [1]

добавлю, что такая ерунда с IE, старый фаерфокс данные передает как с кнопки, так и с клавиатуры


 
Gero ©   (2006-10-29 20:18) [2]

Вероятно, баг.


 
Орион ©   (2006-10-29 20:20) [3]

> Кто нибудь с этим сталкивался?

я нет.
потому что делаю так if(isset($_POST["text"])) ...


 
Gero ©   (2006-10-29 20:24) [4]

> [0] antonn ©   (29.10.06 20:11)


> в cs.php делаю проверку
> if(isset($_POST["submit"])){...}

А, я не заметил, что проверяешь на submit, конечно, кто тебе сказал, что там что-то должно быть?


 
antonn ©   (2006-10-29 20:25) [5]

Орион ©   (29.10.06 20:20) [3]
потому что делаю так if(isset($_POST["text"])) ...

:) долго думал... думаю, да, мне нужна не кнопка, а поле...
я у себя проверял так:
if(isset($_POST["submit"])){
 if($_POST["text"]==""){
  ...
 }


но ведь почему с несколькими эдитами (вообще, можно и текстареа, и п.т.) "кнопка приходит"...


 
Gero ©   (2006-10-29 20:26) [6]

> [5] antonn ©   (29.10.06 20:25)
> if(isset($_POST["submit"])){

Зачем нужна такая проверка?


 
antonn ©   (2006-10-29 20:27) [7]

Gero ©   (29.10.06 20:24) [4]
А, я не заметил, что проверяешь на submit, конечно, кто тебе сказал, что там что-то должно быть?

не думая, по привычке, шаблонно накопировал, внутри перебрал, а сверху не трогал:(

спасибо, что так оперативно подсказали:)


 
Орион ©   (2006-10-29 20:29) [8]

> [5] antonn ©   (29.10.06 20:25)
> но ведь почему с несколькими эдитами (вообще, можно и текстареа, и п.т.) "кнопка приходит"...

А Деструктор его знает. Глюк видимо.


 
Юрий ©   (2006-10-29 20:55) [9]

> [0] antonn ©   (29.10.06 20:11)

Кто же так делает? Проверяют поля, а не кнопку. Честное слово первый раз такое увидел.


 
vidiv ©   (2006-10-29 21:22) [10]

Это не глюк, это фича...
Например используется в гугле. Если отправить запрос на поиск с помощью мыши, то в ответе будет содержаться совет:

Совет: Время – деньги! Нажимайте "Ввод" (Enter) на клавиатуре вместо кнопки "Поиск" на экране.


 
antonn ©   (2006-10-29 21:25) [11]

Юрий ©   (29.10.06 20:55) [9]
я самоучка, по примерам и шишкам на лбу, в основном... вот и конструкции такие устраиваю:)


 
Юрий ©   (2006-10-29 21:40) [12]

> [11] antonn ©   (29.10.06 21:25)

Рекомендую прочитать всё что есть на:
http://www.phpclub.ru/
http://xpoint.ru/
http://phpfaq.ru/

Потом долго (обязательно долго) думать. Только после этого зайти на http://dklab.ru/, а если что-то непонятно на http://forum.dklab.ru/. Если вопросы после этого останутся, то не знаю стоит ли заниматься web. ;)


 
antonn ©   (2006-10-29 21:43) [13]

Юрий ©   (29.10.06 21:40) [12]
мне уже советовали, но времени нет читать все подряд, читаю, когда сталкиваюсь. Тут сбило с толку это странное поведение с несколькими полями (и только в ИЕ).
ЗЫ я вебпрограммингом не зарабатываю, так, для души и хоумпаги)


 
Юрий ©   (2006-10-29 21:57) [14]

> странное поведение с несколькими полями (и только в ИЕ).

Хотите сказать другие браузеры (Opera, FireFox) отрабатывают это нормально?


 
antonn ©   (2006-10-29 22:01) [15]

Юрий ©   (29.10.06 21:57) [14]
фаерфокс да, а больше у меня ничего нет:)


 
Юрий ©   (2006-10-29 22:48) [16]

Провёл исследование на IE (и соответственно клонах на его движке Maxthon и пр.) реакция следующая: при нажатии ENTER на пустом/заполненном вводе (input type=text), браузер в $_POST не отправляет данные о кнопке "submit". Броузеры FireFox, и Opera (Netscape не тестировал, там наверняка всё аналогично) отправляют данные о "sumbit" в $_POST независимо от пустого/заполненного ввода (input type=text). Следовательно последние поступают наиболее правильно, т.к. это удобно, когда в форме должно быть несколько кнопок "submit", для различных действий — в таком случае легко понять, какая кнопка была нажата, и выполнить нужные действия. IE опять меня удивил. :)

Конечно, в данном конкретном случае, проверять всё равно следует поля ввода, а не "submit". ;)


 
Юрий ©   (2006-10-29 23:35) [17]

> [16] Юрий ©   (29.10.06 22:48)
> последние поступают наиболее правильно

Что-то я начал сомневаться что правильно. Ведь нажимая на ENTER в поле ввода, неизвестно к какой "submit" это относится (если их несколько). Надо завтра проверить с несколькими "submit" на форме (во всех браузерах), и сделать вывод.


 
Gero ©   (2006-10-29 23:36) [18]

> [17] Юрий ©   (29.10.06 23:35)

И по итогам сделать заключение, кто рулит, а кто маздай.


 
Ketmar ©   (2006-10-29 23:39) [19]

>[18] Gero(c) 29-Oct-2006, 23:36
>кто рулит
рыська.


 
Юрий ©   (2006-10-29 23:41) [20]

> [18] Gero ©   (29.10.06 23:36)
> И по итогам сделать заключение, кто рулит, а кто маздай.

Неверный подход. Смысл совсем в другом: "кто с точки зрения юзабилити более корректен?" И это уже не мой вывод, а тех пользователей, кто будет пользоваться тем, что я написал.


 
Gero ©   (2006-10-29 23:42) [21]

> [20] Юрий ©   (29.10.06 23:41)

Это не юзабилити, это внутренний функционал.


 
Юрий ©   (2006-10-29 23:45) [22]

> [21] Gero ©   (29.10.06 23:42)
> Это не юзабилити, это внутренний функционал.

Вы уверены?

Тогда пример: "Форма в ней два поля с вводом (номер записи, и текст записи), и две кнопки "submit": Сохранить и Удалить. Пользователь нажимает ENTER введя номер записи, запись не сохраняется а удаляется." Кто виноват?


 
Юрий ©   (2006-10-29 23:46) [23]

... нажимает ENTER введя номер записи, и текст записи ...

PS. Ушёл спать.


 
Gero ©   (2006-10-29 23:47) [24]

> [22] Юрий ©   (29.10.06 23:45)


> Кто виноват?

Программист.


 
Gero ©   (2006-10-29 23:48) [25]

> [22] Юрий ©   (29.10.06 23:45)

А если все работает корректно, то проектировщик интерфейса. Но никак не браузер.


 
Zeqfreed ©   (2006-10-29 23:54) [26]

Если учитывать то, что форма может иметь несколько submit-кнопок, то становится очевидно, что в любом случае (будь то клик мышью или ввод с клавиатуры) имя и значение одной из них должно быть отослано. При управлении с клавиатуры отсылаться должно имя кнопки по умолчанию. Также стоит учитывать, что браузер отправляет значения только "удачных" элементов управления, т.е. таких, для которых заданы имя и текущее значение.


 
antonn ©   (2006-10-29 23:59) [27]

а IE седьмой версии ни у кого не затерялось? я в 6ой проверял, может в 7ой изменили как-то?


 
DiamondShark ©   (2006-10-30 00:46) [28]

Читать http://www.w3.org/TR/html4/interact/forms.html

Отправляться должны только значения  successful controls.
Submit button является successful только если она activated.

При нажатии клавиши ENTER, когда фокус ввода находится на дргом контроле submit button никоим образом не может считаться activated.

Любителям кинуть какашки в IE по любому поводу -- срочно искать вертикальный конструкционный элемент здания для причинения повреждений, несовместимых с жизнью.


 
Юрий ©   (2006-10-30 10:46) [29]

> [28] DiamondShark ©   (30.10.06 00:46)
> Отправляться должны только значения  successful controls.
> Submit button является successful только если она activated.
>
> При нажатии клавиши ENTER, когда фокус ввода находится на
> дргом контроле submit button никоим образом не может считаться
> activated.
>
> Любителям кинуть какашки в IE по любому поводу -- срочно
> искать вертикальный конструкционный элемент здания для причинения
> повреждений, несовместимых с жизнью.

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


 
Юрий ©   (2006-10-30 10:50) [30]

> [25] Gero ©   (29.10.06 23:48)
> А если все работает корректно, то проектировщик интерфейса.
> Но никак не браузер.

В принципе я с Вами согласен. В предыдущем примере, я хотел указать на то, что при таком неочевидном выборе, браузер должен послать "", и скрипт переспросит, что точно нужно сделать. Ну а если же браузер просто отошлёт текст одной из кнопок? Как различит это скрипт? Выбрал это пользователь, или нет? И если этот текст будет "удалить"?

Вообщем конечно, правильней это будет назвать не юзабилити.


 
Gero ©   (2006-10-30 10:55) [31]

> [30] Юрий ©   (30.10.06 10:50)

Хорошее юзабилити в данном случае будет, если пользователю будет очевидно, что произойдет, если он нажмет Enter.
Собственно нужно нужно проектировать UI так, чтобы подобных двоякостей не возникало. А скрипту до лампочки что там нажал и чего выбрал пользователь — он работает с полученными данными.


 
Юрий ©   (2006-10-30 11:18) [32]

> [31] Gero ©   (30.10.06 10:55)
> Хорошее юзабилити в данном случае будет, если пользователю
> будет очевидно, что произойдет, если он нажмет Enter.

Хорошо. Интересно, как вы, измените мой пример.

> чтобы подобных двоякостей не возникало

С этим согласен.


 
Gero ©   (2006-10-30 11:22) [33]

> [32] Юрий ©   (30.10.06 11:18)

Если пользователь находится в режиме редактирования записи, то кнопку «Удалить» ему показывать вобще не нужно, и действительно, зачем пользователю редактировать запись, которую он тут же собирается удалить?


 
Юрий ©   (2006-10-30 11:26) [34]

> [33] Gero ©   (30.10.06 11:22)
> Если пользователь находится в режиме редактирования записи,
> то кнопку «Удалить» ему показывать вобще не нужно, и действительно,
> зачем пользователю редактировать запись, которую он тут
> же собирается удалить?

А если это сделано для скорости? Пользователь может ввести номер "чего-то", и нажать "Удалить", в тоже время не совершая телодвижений, ввести новое значение, и нажать "Сохранить". Т.е. работает с одной формой, и не знает проблем. Это ли не проще пользователю, чем многочисленные режимы редактирования, и просмотра?


 
saxon   (2006-10-30 11:30) [35]


> Юрий ©
> Что-то я начал сомневаться что правильно. Ведь нажимая на
> ENTER в поле ввода, неизвестно к какой "submit" это относится
> (если их несколько). Надо завтра проверить с несколькими
> "submit" на форме (во всех браузерах), и сделать вывод.

Сработает та которая - default.


 
Юрий ©   (2006-10-30 11:32) [36]

> [35] saxon   (30.10.06 11:30)
> Сработает та которая - default.

То, что надо я для себя проверил. Спасибо. :)



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.052 c
2-1162297425
koha
2006-10-31 15:23
2006.11.19
как ListBox сохранить в файл...


15-1162137611
Chort
2006-10-29 19:00
2006.11.19
AOH


1-1160224589
Sanya_BBB
2006-10-07 16:36
2006.11.19
Как узнать имя файла через компонент OpenDialog?


15-1162187364
alucard
2006-10-30 08:49
2006.11.19
Как вытащить пароль из кукисов


1-1160032506
DVM
2006-10-05 11:15
2006.11.19
OnShow у TFrame как сделать?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский