Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   checkbox не отмечается (https://javascript.ru/forum/css-html/64541-checkbox-ne-otmechaetsya.html)

yashka 18.08.2016 23:37

checkbox не отмечается
 
<form name="sel">
<input type='checkbox' value='1'>
<input type='checkbox' value='2'>
<input type='checkbox' value='3'>
<input type='checkbox' value='4'>
<input type='checkbox' value='5'>
<input type='checkbox' value='6'>
<input type='checkbox' value='7'>
</form>


var s = document.forms.sel;
s.onchange = function() {                                                                                       
var l = s.querySelectorAll('[type="checkbox"]:checked');
    if (l.length > 1){
      l[0].checked = false;
      i = l[1].value;
    }else{
      i = l[0].value;
    }          
    document.getElementById('text').value = i;
}


корректно отрабатывает только в сторону увеличения... а c меньшим индексом становяться не активными(как это вообще?)) это фича такая или я ерундой занимаюсь, спасибо заранее!.

рони 19.08.2016 00:09

yashka,
а чего хотел то?

yashka 19.08.2016 00:23

Ну чтоб при нажатии приведущая галочка снималась

рони 19.08.2016 00:27

yashka,
а если нажали тоже самое?

yashka 19.08.2016 00:32

ну галочка должна снятся (не принципиально) главное чтоб она снялась при нажатии следующей

рони 19.08.2016 00:55

yashka,
а радиокнопки никак?
<!DOCTYPE html>

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


</head>

<body>
<form name="sel">
<input type='checkbox' value='1'>
<input type='checkbox' value='2'>
<input type='checkbox' value='3'>
<input type='checkbox' value='4'>
<input type='checkbox' value='5'>
<input type='checkbox' value='6'>
<input type='checkbox' value='7'>


 <textarea id="text" name=""></textarea></form>
 <script>
var s = document.forms.sel;
s.onchange = function(event) {
var l = s.querySelectorAll('[type="checkbox"]:checked'),elem = event.target, i = 0;
    if (elem.type == 'checkbox'){
    [].forEach.call(l, function(el) {
        el.checked = el == elem;
        if (el.checked)  i = el.value;
    });
    document.getElementById('text').value = i;
    }

}

  </script>

</body>
</html>

yashka 19.08.2016 01:01

без разницы.
спасибо.

рони 19.08.2016 01:06

yashka,
поставьте радиокнопки и скрипт будет в 1 строку

рони 19.08.2016 01:11

yashka,
<!DOCTYPE html>

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


</head>

<body>
<form name="sel">
<input type='radio' value='1' name="z">
<input type='radio' value='2' name="z">
<input type='radio' value='3' name="z">
<input type='radio' value='4' name="z">
<input type='radio' value='5' name="z">
<input type='radio' value='6' name="z">
<input type='radio' value='7' name="z">


 <textarea id="text" name=""></textarea></form>
 <script>
var s = document.forms.sel;
s.onchange = function(event) {
var l = s.querySelector('[name="z"]:checked');
document.getElementById('text').value = l.value||0;
    }


  </script>

</body>
</html>

yashka 19.08.2016 01:21

ещё раз спасибо


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