Javascript.RU

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

Сообщение от Agapkin
в файле component.php заложил всю логику этого компонента
Странная логика, если судить по

user_name: "required"

и

user_email: {
required: true

не так ли?

Не знаю что у вас там за плагин, но если user_email, это поле, которое указывается для проверки, а required: true и прочее, это параметры проверки, значит required, это один из наборов проверки описанный в плагине. Следовательно данный параметр может принимать значения true/false, и т.п. по остальным параметрам.

Если component.php, это логика описывающая и компонент, и правила его проверки, а проверка на сервере также обязательна, то это должно быть, типа:

$components = [
    'user_name' => [
        'type' => 'text',
        'label' => 'Ваше имя',
        'placeholder' => 'Только русские, 3-12 символов',
        'pattern' => '^[а-яёА-ЯЁ]{3,12}$',
        'required' => true,
        'check' => ['flt'=>FILTER_VALIDATE_REGEXP, 'opt'=>['options'=>['regexp' =>'/^[а-яё]{3,12}$/iu']]],
        'error' => 'Сообщение....',
        'default' => false,
    ],
    'user_email' => [
        //
    ]
];


что и отдается клиенту как готовый объект, и если не все для плагина, то выборка параметров. Собственно по описанию компонентов должна строится и сама форма. Вряд ли вам по четвергам потребуется проверка поля имени пользователя, а по понедельникам нет, и данные условия в описаниях компонентов постоянно изменяются, а поэтому возникли какие-то "Y".

Получается какой-то сумбур - на сервере вроде бы серьезный подход, чего-то там описали, при этом на клиенте в задании параметров плагина: if("Y") .... Как это можно понять?

Последний раз редактировалось laimas, 25.03.2017 в 06:41.
Ответить с цитированием
  #12 (permalink)  
Старый 26.03.2017, 03:58
Аспирант
Отправить личное сообщение для Agapkin Посмотреть профиль Найти все сообщения от Agapkin
 
Регистрация: 14.05.2016
Сообщений: 33

рони,
ТЫ ЛУЧШИЙ !! КАК ВСЕГДА ПО СУЩЕСТВУ ! ОГРОМНОЕ СПАСИБО! РАБОТАЕТ.

только вот теперь не могу понять как запихать остальной код

messages: {
			user_name: "Укажите ваше имя",
				user_email: "E-mail имеет неверный формат",
				MESSAGE: {
				required: "Напишите сообщение",
					minlength: "Минимальное количество символов 3"
			}
		},
		errorElement: "em",
			errorPlacement: function ( error, element ) {
			error.addClass( "error-message" );

			if ( element.prop( "type" ) === "checkbox" ) {
				error.insertAfter( element.parent( "label" ) );
			} else {
				error.insertAfter( element );
			}

			if ( !element.next( "span" )[ 0 ] ) {
				$(element).addClass("set-icon");
				$( "<span class='glyphicon glyphicon-remove form-control-feedback'></span>" ).insertAfter( element );
			}
		},
		success: function ( label, element ) {
			if ( !$( element ).next( "span" )[ 0 ] ) {
				$(element).addClass("set-icon");
				$( "<span class='glyphicon glyphicon-ok form-control-feedback'></span>" ).insertAfter( $( element ) );
			}
		},
		highlight: function ( element, errorClass, validClass ) {
			$( element ).parents( ".input-group" ).addClass( "has-error" ).removeClass( "has-success" );
			$( element ).next( "span" ).addClass( "glyphicon-remove" ).removeClass( "glyphicon-ok" );
		},
		unhighlight: function ( element, errorClass, validClass ) {
			$( element ).parents( ".input-group" ).addClass( "has-success" ).removeClass( "has-error" );
			$( element ).next( "span" ).addClass( "glyphicon-ok" ).removeClass( "glyphicon-remove" );
		}




Изначально было так:
$( "#fm-feedback-form" ).validate( {
		rules: {
			user_name: "required",
			user_email: {
				required: true,
					email: true
			},
			MESSAGE: {
				required: true,
					minlength: 3
			}
		},
		messages: {
			user_name: "Укажите ваше имя",
				user_email: "E-mail имеет неверный формат",
				MESSAGE: {
				required: "Напишите сообщение",
					minlength: "Минимальное количество символов 3"
			}
		},
		errorElement: "em",
			errorPlacement: function ( error, element ) {
			error.addClass( "error-message" );

			if ( element.prop( "type" ) === "checkbox" ) {
				error.insertAfter( element.parent( "label" ) );
			} else {
				error.insertAfter( element );
			}

			if ( !element.next( "span" )[ 0 ] ) {
				$(element).addClass("set-icon");
				$( "<span class='glyphicon glyphicon-remove form-control-feedback'></span>" ).insertAfter( element );
			}
		},
		success: function ( label, element ) {
			if ( !$( element ).next( "span" )[ 0 ] ) {
				$(element).addClass("set-icon");
				$( "<span class='glyphicon glyphicon-ok form-control-feedback'></span>" ).insertAfter( $( element ) );
			}
		},
		highlight: function ( element, errorClass, validClass ) {
			$( element ).parents( ".input-group" ).addClass( "has-error" ).removeClass( "has-success" );
			$( element ).next( "span" ).addClass( "glyphicon-remove" ).removeClass( "glyphicon-ok" );
		},
		unhighlight: function ( element, errorClass, validClass ) {
			$( element ).parents( ".input-group" ).addClass( "has-success" ).removeClass( "has-error" );
			$( element ).next( "span" ).addClass( "glyphicon-ok" ).removeClass( "glyphicon-remove" );
		}
	});
Ответить с цитированием
  #13 (permalink)  
Старый 26.03.2017, 04:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

Agapkin,
так добавьте data все остальные ключи без изменений
var data = {rules : {}, messages : ... , errorElement: ...};
Ответить с цитированием
  #14 (permalink)  
Старый 26.03.2017, 14:51
Аспирант
Отправить личное сообщение для Agapkin Посмотреть профиль Найти все сообщения от Agapkin
 
Регистрация: 14.05.2016
Сообщений: 33

рони,
Класс!!! Еще раз СПАСИБО !
Получилось! То, что надо!
Ответить с цитированием
  #15 (permalink)  
Старый 26.03.2017, 14:52
Аспирант
Отправить личное сообщение для Agapkin Посмотреть профиль Найти все сообщения от Agapkin
 
Регистрация: 14.05.2016
Сообщений: 33

рони,
Класс!!! Еще раз СПАСИБО !
Получилось! То, что надо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Sencha JetBrains Plugin for WebStorm kolka ExtJS 1 05.08.2015 21:25
закрыть окно js Artem215 Элементы интерфейса 10 22.04.2015 15:34
Не работает validate на форме, загруженной ajax'ом Daniel93 AJAX и COMET 24 07.03.2015 14:08
Использование JQuery Cycle Plugin с со списком изображений zzzzz Ваши сайты и скрипты 4 16.07.2014 13:51
jqury plugin fish9370 jQuery 2 29.08.2013 10:57