Цитата:
Ежику понятно, что гораздо лучше когда сам браузер справится без всяких скриптов, а то что Safari не поддерживает, так это проблемы яблочников и самого Яблока, что есть вопрос сугубо философский и для темы не более мусора. |
Цитата:
|
Напомню разницу между html и xml
xml без модели документа - голимая абстракция. модель для html пишется по риквестам на w3c.org, называется спецификация и реализуется браузером Так вот, силой воображения можно представить, что html тоже голимая абстракция и тогда становится понятным, что ты можешь применять любую модель, отличную от спецификации. Например пресловутые атрибуты data- Кто вас заставляет использовать их как свойства - element.dataset.foo - ? Никто не заставляет, можешь получать значение через element.getAttribute('data-foo'); Тогда зачем такие длинные названия? Именно, вообще не нужны. Однако, возможен конфликт твоей модели и спецификации, например используя атрибут onclick появляется риск получить неожиданное поведение элемента. Используй короткие названия, 27 букв латинского алфавита - скорее всего более чем достаточно, а применительно к бесконечному числу моделей (контекста) хватит нескольких. Тогда зачем писать pattern и required? Можно p и r. Просто на будущее. Скажем браузерная валидация начнет работать нормально и не придется переделывать шаблоны и html - там уже pattern и required. Просто убьем лишнее в скриптах и ура. В общем, понятно, что и теги и их атрибуты могут быть какими угодно, если спецификация не конфликтует с твоей моделью. У меня год на одном сайте использовался тег val, который на самом деле var. Все работало как из пушки - и стили применялись и скрипты само собой его находили. |
Аналогично с объектами. В объект - который элемент - можно вштырить какие угодно свойства и методы. Он же объект, а мы на жабе скрипучей кодим, а ей почти все похеру. Свобода обуславливает культуру. Один молится на спецификацию не смея отползти от алтаря, другой пишет библиотеку prototype. Это две крайности. Так вот, умные судят по мере, а дураки о крайностях. Используйте свободу html и js по мере.
|
Цитата:
И хватит мусорить в темах, уважать надо автора. |
Цитата:
Вот какой контекст Цитата:
Про сафарю походя сказал один профессор, а ты в ужасе сразу потер паттерны и приуныл. |
warren buffet,
слушай, умник, хватит срач в темах разводить. Несешь бред автору пользы не несущий. Охота языком чесать - создавай тему, пиши там о разностях, о плюсах и минусах, о своих мнениях, будет интересно, будут и собеседники. У меня есть свое мнение вообще о браузерах, но это не повод гадить этим мнением чужие темы. |
В общем вот рабочий пример, проще буквально некуда, но в нем есть все, что нужно для счастья.
<!DOCTYPE html> <html lang="ru" dir="ltr"> <head> <meta charset="utf-8"> </head> <body> <br/> <style> .errlog{ outline:1px solid #eee; } </style> <form id="feedback" method="get" action="" novalidate autocomplete="off"> <label>Ваше русское имя <input name="fullname" required="required" type="text" placeholder="ФИО" pattern="[а-яёА-ЯЁ]{2,12}" e="Соблюдайте формат имени: от 2 до 12 русских букаф" /></label> <br/><br/> <label>Номер телефона <input name="phone" required="required" type="tel" placeholder="+7(777)777-77-77" pattern="^(?:\+7|8)[\s|-]*[\(]?\d{3}?[\)]?[\s|-]*\d{3}[\s|-]*\d{2}[\s|-]*\d{2}$" e="Неправильно набран номер, неправильно набран номер, бип-бип-бип" /></label> <br/><br/> <label>Электронный адрес <input name="email" type="email" required="required" type="email" placeholder="МЫЛО" pattern="^[a-z0-9_\.\-]+@[a-z0-9_\.\-]+\.[a-z\.]{2,6}$" e="Соблюдайте формат имейл: some@example.com" /></label> <br/><br/> <input type="submit" value="PostIt"/> <br/><br/> <div class="errlog"></div> </form> <script> var Form = new function(){ var form=document.getElementById('feedback'), fields=form.elements, errout=form.querySelector('.errlog'),errlog, validate=function(ev){ errout.innerHTML=''; errlog=[]; for(var i=0;i<fields.length;i++){ var f=fields[i]; p=f.getAttribute('pattern'), r=f.getAttribute('required'), v=f.value; if(f.name && r && p && !new RegExp(p).test(v)) errlog.push(f.parentNode.textContent+': '+f.getAttribute('e')); } if(errlog.length) { ev.preventDefault(); errout.innerHTML='<ul><li>'+errlog.join('</li><li>')+'</li></ul>'; } /* below line just for test purpose */ else {ev.preventDefault(); alert('Поздравляем! Все заполнено правильно!');} }; form.addEventListener('submit',validate); this.form=form; }; </script> </body> </html> |
warren buffet,
ты читаешь, что просьба была именно на JQ? А значит не getElementById, addEventListener, getAttribute.... Ты вообще для чего это все пишешь? |
Ты же опровергал такое ТЗ, нес там что-то о браузерной валидации, а теперь про ТЗ вспомнил?
Да ты пойми, что кроме тебя и меня и автора темы, тему читает гораздо больше людей и кроме того, топик индексируется и может быть найден еще большим числом людей и, если, там хорошее решение - это хорошо для многих, а если там какашка - то какашка для многих. Чего там хотел ТС - фиолетово. Главное - сделана рабочая иллюстрация простого и даже очевидного решения в рамках простой задачи. Если туда скажем добавить файлово поле - все резко усложнится, поскольку с файлами геморрой вообще. Если добавить списки, чек, радивы - еще усложнится. А такие вот простые вещи когда там текстовые поля не требуют никакой сложности сервисной проверки. ЗЫ тебе придурку хотел сказать спасибо за паттерны, но ты ж такой злой, что даже спасибо не дашь сказать. ))) |
Часовой пояс GMT +3, время: 19:33. |