Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   С type="checkbox" в input 0 или 1 (https://javascript.ru/forum/dom-window/60302-s-type%3D-checkbox-v-input-0-ili-1-a.html)

dima_riabets 22.12.2015 02:05

С type="checkbox" в input 0 или 1
 
<input type="checkbox" name="option1" value="1" checked>что то 1<Br>
   <input type="checkbox" name="option2" value="1">что то 2<Br>
   <input type="checkbox" name="option3" value="1">что то 3<Br> 
   <input type="checkbox" name="option4" value="1">что то 4<Br> 
   <input type="checkbox" name="option5" value="1">что то 5</p>

Таких опций может быть больше.
Есть обычное поле:
<input type="text" maxlength="10" name="vivod111" style="width: 100px" size="10" value="00000">


Если никакой чекбокс не установлен значение поля name="vivod111" = 00000.
Каждому чекбоксу соответствует свой 0 (если не активен), 1 если установлен чекбокс.

К примеру:
Я выбрал что то 1 и что то 4

В поле value должно быть: 10010

Помогите, спасибо) :thanks:

рони 22.12.2015 02:23

dima_riabets,
for знаешь? обойди нужные элементы и собери значения, в чём проблема?

dima_riabets 22.12.2015 02:46

Проблема в том, что редактировать и модернизировать могу, написать увы (

рони 22.12.2015 02:55

dima_riabets,
;)
<!DOCTYPE HTML>

<html>

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

<body>
<form action="http://">
   <input type="checkbox" name="option1" value="1">что то 1<Br>
   <input type="checkbox" name="option2" value="1">что то 2<Br>
   <input type="checkbox" name="option3" value="1">что то 3<Br>
   <input type="checkbox" name="option4" value="1">что то 4<Br>
   <input type="checkbox" name="option5" value="1">что то 5<br>
   <input type="text" maxlength="10" name="vivod111" style="width: 100px" size="10" value="00000">
</form>

<script>
window.addEventListener('DOMContentLoaded', function() {
  var form = document.querySelector('form'),
  checkbox = form.querySelectorAll('[type="checkbox"]'),
  inp = form.querySelector('[name="vivod111"]'),
  val;
  form.addEventListener('change', function() {
    val = [].map.call( checkbox, function(el) {
         return +el.checked
     }).join('');
    inp.value = val
  });


    });
</script>
</body>

</html>

laimas 22.12.2015 11:18

Цитата:

Сообщение от dima_riabets
В поле value должно быть: 10010

Хотите использовать битовую маску, и если да, то почему такой странный результат?

dima_riabets 22.12.2015 13:28

А если input находится не в форме?

<form action="http://" id="ddddd222">
   <input type="checkbox" name="option1" value="1">что то 1<Br>
   <input type="checkbox" name="option2" value="1">что то 2<Br>
   <input type="checkbox" name="option3" value="1">что то 3<Br>
   <input type="checkbox" name="option4" value="1">что то 4<Br>
   <input type="checkbox" name="option5" value="1">что то 5<br>
</form>

<input type="text" maxlength="10" name="vivod111" style="width: 100px" size="10" value="00000">

рони 22.12.2015 13:35

dima_riabets,
долго долго думать над строкой 24 где 4 буквы надо поменять на 8 :( , если устаните думать, посмотрите на строку 22.

dima_riabets 22.12.2015 13:41

:yes: Да) Спасибо!)


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