Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.12.2017, 06:28
Кандидат Javascript-наук
Отправить личное сообщение для pokk Посмотреть профиль Найти все сообщения от pokk
 
Регистрация: 30.01.2014
Сообщений: 145

Универсальная установка в input, JSON ответа(исключения)
Делаю "универсальный" разбор, json ответа и расставляю по полям,
но некоторые поля, сложные(составные) к примеру
поля IP_Access должны формироваться как IP_Access[i]+'/'+Mask_Access[i]
и вообще если IP_Access='0.0.0.0', вообще не отображать.
Ну и возможны другие исключения по параметрам, подскажите как, их сделать по феншую?
Ну или можно их вынести в отдельные функции, что бы не загромождать,основную работу.


var test="\"IP\":\"192.168.1.4\",\"Mask\":\"255.255.255.0\",\"Mask_Access\":[11,22,33],\"IP_Access\":[\"0.0.0.0\",\"0.0.0.0\",\"0.0.0.0\",\"0.0.0.0\"]";
		var jsonList = document.querySelectorAll('.act'); //JSON act
		var objJSON = eval('({' + test + '})');
		console.log(objJSON);
		for (var Key in objJSON) {
			//console.log(Key);
			//console.log(objJSON[Key]);
			if(typeof (objJSON[Key])=="object"){
				var i=0;
				for (var Key2 in objJSON[Key]) {
					i++;
					//console.log(objJSON[Key][Key2]);
					document.getElementById('id_'+Key+'_'+i).value=objJSON[Key][Key2];
				}
			}else{
				document.getElementById('id_'+Key).value=objJSON[Key];
			}

		}
Ответить с цитированием
  #2 (permalink)  
Старый 07.12.2017, 08:10
Кандидат Javascript-наук
Отправить личное сообщение для pokk Посмотреть профиль Найти все сообщения от pokk
 
Регистрация: 30.01.2014
Сообщений: 145

В общем сделал как-то так.
var Mask_temp;
function Handler_Mask_Access(key,value){
	Mask_temp=value;
}
//==================================================================================================
function Handler_IP_Access(key,value){
	if(typeof value=="object"){
		var k=0;
		for (var i in value) {
			console.log(i);
			console.log(value[i]);
			k++;
			document.getElementById('id_'+key+'_'+k).value=value[i]+'/'+Mask_temp[i];		 
		}
	}else{
		//console.log("");	
	}
}
//==================================================================================================
function GetPage(link){
var test="\"IP\":\"192.168.1.4\",\"Mask\":\"255.255.255.0\",\"Mask_Access\":[11,22,33],\"IP_Access\":[\"0.0.0.0\",\"0.0.0.0\",\"0.0.0.0\",\"0.0.0.0\"],\"ComReadSNMP\":\"public\",\"ComWriteSNMP\":\"public\",\"IpTrap\":[\"192.168.1.63\",\"192.168.1.63\"],\"Comm\":[\"public\",\"public\"],\"PortTrap\":[162,288],\"TrapCheckbox\":[1,0],\"Gateway\":\"192.168.1.4\"";
		//var test="\"IP\":\"192.168.1.4\",\"Mask\":\"255.255.255.0\",\"IP_Access\":[\"0.0.0.0\",\"0.0.0.0\",\"0.0.0.0\",\"0.0.0.0\"]";
		var jsonList = document.querySelectorAll('.act'); //JSON act
		var objJSON = eval('({' + test + '})');
		
		for (var Key in objJSON) {
			// console.log(Key);
			// console.log(objJSON[Key]);

			var Funct='Handler_'+Key;
			//console.log(Funct);				
			if (typeof window[Funct] == 'function'){
				//---------------------------------------------------------------------------
				//----Обработчик текушего поля найдет запускаем его  ------------------------
				//---------------------------------------------------------------------------				
					eval(Funct+'(Key,objJSON[Key])');
			}else{
				//---------------------------------------------------------------------------
				//----Нету обработчика текушего поля значит по дефолту выставляем поля-------
				//---------------------------------------------------------------------------
					if(typeof (objJSON[Key])=="object"){
						var i=0;
						for (var Key2 in objJSON[Key]) {
							i++;
							//console.log(objJSON[Key][Key2]);
							//console.log('id_'+Key+'_'+i);
							document.getElementById('id_'+Key+'_'+i).value=objJSON[Key][Key2];
						}
					}else{
						//console.log('id_'+Key);
						document.getElementById('id_'+Key).value=objJSON[Key];
					}
				//---------------------------------------------------------------------------
			}
		}
}
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Калькулятор с вариантом значений. dzho Общие вопросы Javascript 45 06.08.2017 03:54
Значения элементов формы типа Input по нажатию кнопки сохранить в JSON drno-reg Элементы интерфейса 1 22.07.2016 15:15
Установка каретки в определенное место input Upcoming Events/DOM/Window 2 16.02.2014 12:48
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 19:27
Разным элементам input - разное форматирование. Как? eclipse (X)HTML/CSS 1 25.10.2007 13:55