Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.06.2015, 15:15
Интересующийся
Отправить личное сообщение для ru_rikki Посмотреть профиль Найти все сообщения от ru_rikki
 
Регистрация: 25.02.2015
Сообщений: 24

Объединить две функции
Доброго времени суток, уважаемые форумчане!
Уже нет сил и мыслей
есть одна функция:
function RikkiArrShowCheck (element, link, linktype, erlink, digit, arr) {
  var obj = document.getElementById(element.id);
  var num = 0;
  var l = '';
  for (var i = 0; i < obj.elements.length; i++) {
   var v = obj.elements[i].value;
    if (obj.elements[i].type == 'checkbox') {
      if (obj.elements[i].checked == true) {
        num++;
        if ($.trim(v) != '000') {
          if (num <= digit) {
            if ($.inArray(v, arr) != -1) {
              l += linktype + num + '=' + $.trim(v);
              window.location.href = link + l;
            } else {
              window.location.href = erlink;
            }
          } else { obj.elements[i].checked = false; }
        } else {
          if (num == 1) {
            window.location.href = link + linktype + '1=000';
            obj.elements[i].checked = false;
			break;
          }
        }
      }
    }
  }
}

Результат ее можно просмотреть здесь http://citr.tk
Смысл действия, при выборе чекбокса в адресной строке формируется ссылка с добавлением его значения, ограничение до трех чекбоксов одновременно
Вторая функция:
function yahooRikki (element) {
	var obj = document.getElementById(element.id);
	var num = 0;
	for (var i = 0; i < obj.elements.length; i++) {
		if(obj.elements[i].type == 'checkbox'){
			if (obj.elements[i].checked == true) {
				num++;
				if (num < 3) {
					for (var k = 0; k < obj.elements.length; k++) {
						obj.elements[k].disabled = false;	
					}
				} else {
					obj.elements[i].disabled = false;
					for (var j = 0; j < obj.elements.length; j++) {
						if (obj.elements[j].checked == false) {
							obj.elements[j].disabled = true;
						}
					}
				}
			} 
		}
	}
}

это при выборе трех чекбоксов - все остальные disabled, просмотреть можно здесь: http://rikky.novhost.cf/search.php?status=2&region=&set=&loc1=&loc2=&loc3= &zone1=&zone2=&zone3=&type1=010&type2=013&type3=01 4 если нажать ссылку: сбросить все диапазоны, а затем кнопку Поиск, потом в сводных данных(правая верхняя панель) нажать "перейти к фильтрам" и выбрать любой radio

Как сделать чтобы первая функция при выборе 3х чекбоксов disabled все остальные? там проблема из-за reload. Уже мозги высохли
Ответить с цитированием
  #2 (permalink)  
Старый 05.06.2015, 17:14
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

ru_rikki,
function RikkiArrShowCheck (element, link, linktype, erlink, digit, arr) {
  var obj = document.getElementById(element.id);
  var num = 0;
  var l = '';
  for (var i = 0; i < obj.elements.length; i++) {
   var v = obj.elements[i].value;
    if (obj.elements[i].type == 'checkbox') {
      if (obj.elements[i].checked == true) {
        num++;
        if ($.trim(v) != '000') {
          if (num <= digit) {
            for (var k = 0; k < obj.elements.length; k++) {
              obj.elements[k].disabled = false;  
            }
            if ($.inArray(v, arr) != -1) {
              l += linktype + num + '=' + $.trim(v);
              window.location.href = link + l;
            } else {
              window.location.href = erlink;
            }
          } else {
            obj.elements[i].checked = false;
            obj.elements[i].disabled = false;
            for (var j = 0; j < obj.elements.length; j++) {
              if (obj.elements[j].checked == false) {
                obj.elements[j].disabled = true;
              }
            }
          }
        } else {
          if (num == 1) {
            window.location.href = link + linktype + '1=000';
            obj.elements[i].checked = false;
            break;
          }
        }
      }
    }
  }
}
Ответить с цитированием
  #3 (permalink)  
Старый 05.06.2015, 17:49
Интересующийся
Отправить личное сообщение для ru_rikki Посмотреть профиль Найти все сообщения от ru_rikki
 
Регистрация: 25.02.2015
Сообщений: 24

Rise, нет, так делала уже, сейчас на сайте http://citr.tk ваш код, можно увидеть, что при выборе 4го чекбокса все остальные disabled но тут же reload все сбрасывает, в том то вся и проблема

Последний раз редактировалось ru_rikki, 05.06.2015 в 17:51.
Ответить с цитированием
  #4 (permalink)  
Старый 07.06.2015, 19:38
Интересующийся
Посмотреть профиль Найти все сообщения от pornoborets
 
Регистрация: 07.06.2015
Сообщений: 26

ru_rikki,
Зачем Вы при каждом выборе перезагружаете страницу? Формируйте строку, а в последний момент делайте перезагрузку. Вы так и сервак дергаете напрасно.

Последний раз редактировалось pornoborets, 07.06.2015 в 22:01.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Две одинаковые функции Daniil94 Events/DOM/Window 4 30.05.2014 01:40
Два файла, две функции, но с одним именем Janom Общие вопросы Javascript 19 31.01.2013 10:46
Помогите соединить две функции bratkovsky Общие вопросы Javascript 0 30.07.2012 23:53
Две функции не хотят работать в одном файле aDiVaNToS jQuery 17 30.06.2012 18:20
JS классы - как объединить функции в класс olga153b Events/DOM/Window 3 01.11.2011 14:13