Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 17.10.2016, 04:59
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от warren buffet
Теперь написать скрипт в несколько строк дело нескольких минут, поскольку все самоочевидно.
Зачем писать то, что уже было написано, предложено и отвергнуто? Ты чего-то нового предложил?

Ежику понятно, что гораздо лучше когда сам браузер справится без всяких скриптов, а то что Safari не поддерживает, так это проблемы яблочников и самого Яблока, что есть вопрос сугубо философский и для темы не более мусора.
Ответить с цитированием
  #32 (permalink)  
Старый 17.10.2016, 07:38
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от laimas
а то что Safari не поддерживает
Сафаря не поддерживает .getAttribute() ?
Ответить с цитированием
  #33 (permalink)  
Старый 17.10.2016, 07:51
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Напомню разницу между 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. Все работало как из пушки - и стили применялись и скрипты само собой его находили.
Ответить с цитированием
  #34 (permalink)  
Старый 17.10.2016, 08:00
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Аналогично с объектами. В объект - который элемент - можно вштырить какие угодно свойства и методы. Он же объект, а мы на жабе скрипучей кодим, а ей почти все похеру. Свобода обуславливает культуру. Один молится на спецификацию не смея отползти от алтаря, другой пишет библиотеку prototype. Это две крайности. Так вот, умные судят по мере, а дураки о крайностях. Используйте свободу html и js по мере.
Ответить с цитированием
  #35 (permalink)  
Старый 17.10.2016, 08:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от warren buffet
Сафаря не поддерживает .getAttribute() ?
А там что речь о методе? В контексте темы речь идет о том, что яблочный браузер не поддерживает атрибуты pattern и required. Или это не понятно? Чего такую длинную портянку писать, никто тебе не запрещает иметь пользовательские атрибуты, а молиться на них или на рекомендованные W3C, это уж твое личное дело.

И хватит мусорить в темах, уважать надо автора.
Ответить с цитированием
  #36 (permalink)  
Старый 17.10.2016, 08:10
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от laimas
В контексте темы

Вот какой контекст

Цитата:
нужно сделать проверку на корректность введенных данных с помощью библиотеки JQuery.

Про сафарю походя сказал один профессор, а ты в ужасе сразу потер паттерны и приуныл.
Ответить с цитированием
  #37 (permalink)  
Старый 17.10.2016, 08:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

warren buffet,
слушай, умник, хватит срач в темах разводить. Несешь бред автору пользы не несущий. Охота языком чесать - создавай тему, пиши там о разностях, о плюсах и минусах, о своих мнениях, будет интересно, будут и собеседники.

У меня есть свое мнение вообще о браузерах, но это не повод гадить этим мнением чужие темы.
Ответить с цитированием
  #38 (permalink)  
Старый 17.10.2016, 08:50
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

В общем вот рабочий пример, проще буквально некуда, но в нем есть все, что нужно для счастья.

<!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>
Ответить с цитированием
  #39 (permalink)  
Старый 17.10.2016, 09:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

warren buffet,
ты читаешь, что просьба была именно на JQ? А значит не getElementById, addEventListener, getAttribute.... Ты вообще для чего это все пишешь?
Ответить с цитированием
  #40 (permalink)  
Старый 17.10.2016, 17:50
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Ты же опровергал такое ТЗ, нес там что-то о браузерной валидации, а теперь про ТЗ вспомнил?

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

Чего там хотел ТС - фиолетово. Главное - сделана рабочая иллюстрация простого и даже очевидного решения в рамках простой задачи.

Если туда скажем добавить файлово поле - все резко усложнится, поскольку с файлами геморрой вообще. Если добавить списки, чек, радивы - еще усложнится.

А такие вот простые вещи когда там текстовые поля не требуют никакой сложности сервисной проверки.

ЗЫ тебе придурку хотел сказать спасибо за паттерны, но ты ж такой злой, что даже спасибо не дашь сказать. )))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery Form Plugin не знаю id формы! Apostol-Aristotel jQuery 0 20.01.2012 20:29
JQUERY - как сделать синхронный выбор/отмену выбора, в нескольких селектах формы sadzeburo jQuery 8 06.10.2011 15:24
Валидация поля для отправки формы shkarbatov Javascript под браузер 3 25.07.2011 14:07
Валидация формы, проблемы с функциями kolybasov jQuery 7 11.07.2011 13:06
Как отключить submit формы в jQuery? khusamov Общие вопросы Javascript 2 08.07.2009 00:54