Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Зависимость значения одного поля от суммы двух других полей (https://javascript.ru/forum/dom-window/55548-zavisimost-znacheniya-odnogo-polya-ot-summy-dvukh-drugikh-polejj.html)

kos0760 03.05.2015 22:56

Зависимость значения одного поля от суммы двух других полей
 
Здравствуйте! Вопрос. Имеется форма с полями выпадающих списков. Вот код:

<span class="krit">Внутренние камеры:</span>
<p style="display: none;" rel="Внутренние камеры"></p>
 <select name="op1" id="">
    <option style="color: #cccccc; display: none;" class="" value="0"></option>
	<option value="t0">0</option>
    <option value="t1">1</option>
    <option value="t2">2</option>
    <option value="t3">3</option>
    <option value="t4">4</option>
	<option value="t4">5</option>
	<option value="t4">6</option>
	<option value="t4">7</option>
	<option value="t4">8</option>
	<option value="t4">9</option>
	<option value="t4">10</option>
	<option value="t4">11</option>
	<option value="t4">12</option>
	<option value="t4">13</option>
	<option value="t4">14</option>
	<option value="t4">15</option>
   </select>    
	 
	
	<span class="krit">Уличные камеры:</span>
	<p style="display: none;" rel="Уличные камеры"></p>
 <select name="op4" id="">
 <option style="color: #cccccc; display: none;" class="" value="0"></option>
    <option value="t0">0</option>
    <option value="t1">1</option>
    <option value="t2">2</option>
    <option value="t3">3</option>
    <option value="t4">4</option>
	<option value="t4">5</option>
	<option value="t4">6</option>
	<option value="t4">7</option>
	<option value="t4">8</option>
	<option value="t4">9</option>
	<option value="t4">10</option>
	<option value="t4">11</option>
	<option value="t4">12</option>
	<option value="t4">13</option>
	<option value="t4">14</option>
	<option value="t4">15</option>
   </select>

   <span class="krit">Видеорегистратор(кан.):</span>
   <p style="display: none;" rel="Видеорегистратор(кан.)"></p>
 <select name="op3">
 <option style="color: #cccccc; display: none;" class="" value="0"></option>
    <option value="t1">4</option>
    <option value="t2">8</option>
    <option value="t3">16</option>
    <option value="t4">32</option>	
   </select>


Как сделать, чтобы при выборе допустим 4 камер внутренних и 4 уличных в поле ВИДЕОРЕГИСТРАТОР скрывалась цифра 4 и подставлялась цифра 8, т.е. необходимо суммировать количество камер и округлять до ближайшего большего (если сумма камер 9, то минимальное значение в поле видеорегистратор должно быть 16).

Спасибо!

Makarov 05.05.2015 01:06

Нужно:
1. Найти событие которое происходит при выборе камер
2. Написать к этому событию обработчик, в котором присваивать нужное значение полю видеорегистратор

На каком этапе проблемы?)

kos0760 19.05.2015 20:26

Цитата:

Сообщение от Makarov (Сообщение 369473)
Нужно:
1. Найти событие которое происходит при выборе камер
2. Написать к этому событию обработчик, в котором присваивать нужное значение полю видеорегистратор

На каком этапе проблемы?)

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

рони 20.05.2015 01:01

kos0760,
:cray:
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
  <select name="" id="">
      <option value="0">0</option>
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
      <option value="6">6</option>
      <option value="7">7</option>
      <option value="8">8</option>
      <option value="9">9</option>
      <option value="10">10</option>
      <option value="11">11</option>
      <option value="12">12</option>
      <option value="13">13</option>
      <option value="14">14</option>
      <option value="15">15</option>
  </select>
  <select name="" id="">
      <option value="0">0</option>
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
      <option value="6">6</option>
      <option value="7">7</option>
      <option value="8">8</option>
      <option value="9">9</option>
      <option value="10">10</option>
      <option value="11">11</option>
      <option value="12">12</option>
      <option value="13">13</option>
      <option value="14">14</option>
      <option value="15">15</option>
  </select>
  <select name="" id="" size="4" >
      <option value="4">4</option>
      <option value="8">8</option>
      <option value="16">16</option>
      <option value="32">32</option>
  </select>
<script>
var s = document.querySelectorAll("select"),
    o = s[2].querySelectorAll("option");

function foo() {
    for (var b = +s[0].value + +s[1].value, a = s[2].options.length = 0; a < o.length; a++)
    + o[a].value >= b && s[2].appendChild(o[a]);
    s[2].options[0].selected = !0
}
s[0].onchange = s[1].onchange = foo;


</script>

</body>

</html>


Часовой пояс GMT +3, время: 14:28.