Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Гродненский Форум
19 Апрель 2024, 03:55:16
Новости, реклама:
   Главная   Новости Гродно Помощь Игры Календарь Войти Регистрация   Меню
Гродненский Форум > Компьютеры > Программирование
(Модераторы: Админ, barmalei) > Тема:

Валидация HTML документа. Неприятный момент

Страниц  :   Вниз
  Печать  
Автор Тема: Валидация HTML документа. Неприятный момент  (Прочитано 1265 раз)
0 Пользователей и 1 Гость смотрят эту тему.
modnyj
Гродненец
**

Репутация: +44/-4
Offline Offline

Пол: Мужской
Сообщений: 210


S Просмотр профиля Email
« : 09 Октябрь 2009, 11:58:04 »

Вообщем хочется сделать HTML старничку чтобы HTML полностью проходил валидацию, но вот ведь незадача. В этом документе на некоторые input в методе onclick используется функция, которая принимает на входе массив.
На данный момент массивы выглядят таким образом ['objects', 10], javascript работает прекрасно, а вот валидатор на эти скобки ругаетсо.
Может можно как нить передавать массивы в другом виде, или как то экранировать эти записи, чтобы и в скрипт доходил массив, и чтобы HTML полностью валидный?
Записан

Решение различных проблем с компьютерами. Выезд (город, район). +375298841188, +375259122766
VooDoo
Почетный гродненец
*****

Репутация: +89/-1
Offline Offline

Пол: Мужской
Сообщений: 2885


Dum spiro spero

Просмотр профиля WWW Email
« Ответ #1 : 09 Октябрь 2009, 13:26:05 »

как оно выглядит вообще?
типа: <input type="submit" onclick="do_smth(['objects',10])"/> ?

Добавлено: [time]Fri Oct  9 12:41:24 2009[/time]
http://validator.w3.org/#validate_by_input

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>
</head>
<body>
     <form action="a">
         <div>
         <input type="submit" onclick="do_smth(['bbb',1])">
             </div>
     </form>
</body>
</html>


всё проходит...
« Последнее редактирование: 09 Октябрь 2009, 13:51:00 от VooDoo » Записан

Are you human? - My body is.
Do you feel pain? - My body does.
..- --- --- -.. --- ---
Archi
Почетный гродненец
*****

Репутация: +25/-1
Offline Offline

Пол: Мужской
Сообщений: 1176


Unsilent Chburashko in the northern sky

Просмотр профиля WWW
« Ответ #2 : 12 Октябрь 2009, 09:25:38 »

Заверни свой javascript в блок CDATA, например, так:
Код:
<script type="text/javascript">
//<![CDATA[
  function submitClick(){
    do_smth(['objects',10]);
  }
//]]>
</script>
Записан

У меня дикая аллергия на тупость. Я сразу покрываюсь сарказмом.
modnyj
Гродненец
**

Репутация: +44/-4
Offline Offline

Пол: Мужской
Сообщений: 210


S Просмотр профиля Email
« Ответ #3 : 20 Октябрь 2009, 12:12:52 »

как оно выглядит вообще?
типа: <input type="submit" onclick="do_smth(['objects',10])"/> ?

Добавлено: [time]Fri Oct  9 10:41:24 2009[/time]
http://validator.w3.org/#validate_by_input

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>
</head>
<body>
     <form action="a">
         <div>
         <input type="submit" onclick="do_smth(['bbb',1])">
             </div>
     </form>
</body>
</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">
О бля и с таким доктайпом проходит если input закрыть
Вот ещё вопрос на злобу дня как сделать чтобы валидатор не ругался на квадратные скобки в id и name атрибутах элементов например <input type="checkbox" id="item[0]" name="item[0]" />


Добавлено: 20 Октябрь 2009, 10:13:52
Заверни свой javascript в блок CDATA, например, так:
Код:
<script type="text/javascript">
//<![CDATA[
  function submitClick(){
    do_smth(['objects',10]);
  }
//]]>
</script>
сами javascript обёрнуты перекашивает его именно на конструкциях в onclick
Записан

Решение различных проблем с компьютерами. Выезд (город, район). +375298841188, +375259122766
VooDoo
Почетный гродненец
*****

Репутация: +89/-1
Offline Offline

Пол: Мужской
Сообщений: 2885


Dum spiro spero

Просмотр профиля WWW Email
« Ответ #4 : 21 Октябрь 2009, 11:51:32 »

в dtd написано что name это NMTOKEN
а NMTOKEN это

So to summarize:

(1) The purpose of the NMTOKEN attribute type is to constrain the content
of attribute values by their *form* (rather than by their actual value, as
would be done with an enumeration). (I think this general statement was
true even though I muffed the examples!)

(2) The *form* of an attribute value declared as type NMTOKEN is such that
it may contain only valid NAME characters. The valid name characters are
"letters" (alphabetics as expressed in ASCII Latin, ISO Latin, and so on);
digits (also including ASCII and various international sets); limited
punctuation (full stop (.), hyphen (-), colon (Улыбка); and various combining
and extending characters required for internationalization. Internal
whitespace is not allowed in NMTOKEN-type attribute values. [Constraints in
item (2) established by productions #4, 7, and 84-89 in REC-xml-19900210.]

(3) Leading and trailing whitespace is trimmed/ignored before determining
whether the value is valid for a NMTOKEN-type attribute.





http://mailman.ic.ac.uk/pipermail/xml-dev/1998-May/003683.html
Записан

Are you human? - My body is.
Do you feel pain? - My body does.
..- --- --- -.. --- ---
Страниц  :   Вверх
  Печать  
 
Перейти в:  

Войти
Войдите, чтобы добавить комментарий

Войдите через социальную сеть

Имя пользователя:
Пароль:
Продолжительность сессии (в минутах):
Запомнить:
Забыли пароль?

Контакт
Powered by MySQL Powered by PHP Мобильная версия
Powered by SMF 1.1.20
SMF © 2006-2024, Simple Machines
Simple Audio Video Embedder
| Sitemap
Valid XHTML 1.0! Valid CSS!
Страница сгенерирована за 0,096 секунд. Запросов: 19.