вопрос по JavaScript

IvladV71

как получить доступ к селекту, если он не относится ни к одной форме?

admsec2008

отнести его к какой-нибудь специально для него созданой формы.
а так, возможно что-нибудь типа document.getElementById(selec_id) сработает.

IvladV71

>отнести его к какой-нибудь специально для него созданой формы.
в итоге так и сделал...

dedwowan

Нафиг?
Надо было просто id ему дать и обращаться по id

Ivan826

У тебя любой элемент должен быть в форме.
И JS без этого не работает, и по спецификации w3c

dedwowan

Хон.
Обращаешся по id и все работает.

maggi14

Все работает.

dedwowan

Кстати
Покажи мне то место в спецификации w3c, где написано, что всякие контролы должны быть в форме.

IvladV71

>И JS без этого не работает, и по спецификации w3c
я тож так думал

stm7884696

стандарт дефакто... Что элеенты форму должны быть в форме... а точнее между открывающим и закрывающим тегами форму...
Как и любой другой внутренний элемент...
а то что работает - так это ошибка, на которую интерпритатор HTML ложил с большо буквы...
Попробуйте в С++ сделать ошибку вложенности

vijrel7878

Покажи мне то место в спецификации w3c, где написано, что всякие контролы должны быть в форме

и что это будет означать, контрол без формы ?

sergei1969

а чем плох контрол без формы?
например button

dedwowan

стандарт дефакто... Что элеенты форму должны быть в форме... а точнее между открывающим и закрывающим тегами форму...

Ну если уж он не прописан деюро, то это нифига не стандарт, т.к. все ложат с большой буквы на такое условие.

vijrel7878

хм... допускаю, есть применения.
2:
Ну а вдруг в следующей версии експлорера забьют на это разгильдяйство? Придется переделывать, а это всегда неприятно

sergei1969

имеено поэтому не
>забьют на это разгильдяйство

vijrel7878

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

artimon

По спецификации w3c все элементы формы — это inline элементы и могут появляться в любом месте, где допустимы inline элементы.

stm7884696

ты философ - фот и философствуй... а мне просто приятно, когда w3c говорят, что у меня страница разверстана под XHTML 1.0 strict

stm7884696

смотря подо что пишешь....

dedwowan

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

Я же не просто так попросил показать мне то место в спецификации, где это проговаривается.

dedwowan

Вот все что я нашел в спецификации, касательно расположения контролов
The scope of the name attribute for a control within a FORM element is the FORM element.

Обращаю внимание, тут говорится только о атрибуте "name".
Для любителей XHTML - почитайте вот это
http://www.w3.org/TR/xhtml1/#h-4.10
Вообще вставлять тег <form></form> ничего не мешает, хуже от этого не будет.
Другое дело, что давать такой форме имя и обращаться к контролу через него неграмотно. Иначе, в один прекрасный момент, вы как-нибудь привяжетесь в своем скрипте к имени контрола в нормальной форме, а потом поменяете имя из-за требований серверной логики.
В общем клиентскую и серверную логику надо разделять, один из инструментов - обращение на клиенте к элементу только по id

IvladV71

>а то что работает - так это ошибка, на которую интерпритатор HTML ложил с большо буквы...
а W3C валидатор тоже кладёт на такие ошибки?

stm7884696

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

artimon

Строже, чем xhtml 1.1 еще не придумано, а он разрешает тегам input быть вне формы.

stm7884696

только вот с точки зрения здравого смысла это не практично... Ибо тогда инфа из этого инпута не попадет никуда... => ее надо обрабатывать JavaScript'ом, что не всегда удобно....
А тег <form> используеться как раз не только для указания имени формы, но и для указания адреса отправки инфы....

dedwowan

Вынос всяких контролов за пределы формы может быть нужен только в том случае, если инфу никуда отправлять не надо.
Оставить комментарий
Имя или ник:
Комментарий: