Javascript.RU

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

Проверка input[text] + input[checkbox]
Добрый день, уважаемые участники сообщества. Помогите, пожалуйста, новичку JS, но опытному верстальщику, решить проблему.

Суть: есть 4 (n) чекбокса input[checkbox], которые активируют поля для ввода input[text]. В поля для ввода вносится число от 0 до 100 (проверка проходит отдельно, для решения вопроса не требуется).

Необходимо: сосчитать количество активных чекбоксов из n доступных, сосчитать сумму чисел активных полей для ввода, высчитать среднее арифметическое и вывести в отдельную переменную.

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

<ul>
	<li><input type="checkbox" /><input type="text" maxlength="3"/></li>
	<li><input type="checkbox" /><input type="text" maxlength="3"/></li>
	<li><input type="checkbox" /><input type="text" maxlength="3"/></li>
	<li><input type="checkbox" /><input type="text" maxlength="3"/></li>
</ul>
Ответить с цитированием
  #2 (permalink)  
Старый 06.01.2017, 20:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

avdotion,
ваши попытки где?
Ответить с цитированием
  #3 (permalink)  
Старый 07.01.2017, 13:03
Новичок на форуме
Отправить личное сообщение для avdotion Посмотреть профиль Найти все сообщения от avdotion
 
Регистрация: 06.01.2017
Сообщений: 2

Мои попытки при решении поставленной задачи
$(document).ready ( function(){

var score;
var prescore;
var sum;

$(".sub-insert").keyup(function() {
	if ($("#sub1").prop('checked')) {
		sum = sum + 1;
		prescore = prescore + ("#sub-insert-1");
	}
	if ($("#sub2").prop('checked')) {
		sum = sum + 1;
		prescore = prescore + ("#sub-insert-2");
	}
	if ($("#sub3").prop('checked')) {
		sum = sum + 1;
		prescore = prescore + ("#sub-insert-3");
	}
	if ($("#sub4").prop('checked')) {
		sum = sum + 1;
		prescore = prescore + ("#sub-insert-4");
	}

	score = prescore / sum;
    
});
});
Ответить с цитированием
  #4 (permalink)  
Старый 07.01.2017, 14:06
Аватар для dd_smol
Кандидат Javascript-наук
Отправить личное сообщение для dd_smol Посмотреть профиль Найти все сообщения от dd_smol
 
Регистрация: 08.03.2015
Сообщений: 131

$('ul :checked').length
Ответить с цитированием
  #5 (permalink)  
Старый 07.01.2017, 15:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

сумма, количество и среднее арифметическое выбранных input
avdotion,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  [type="checkbox"]+input{
    display: none;
  }
   :checked+input{
     display: inline;
   }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
 function calc() {
        var sum = [0,0,0];
        $(":checked+input").val(function(i, v) {
            var num = +v || 0;
            num > 100 && (num = 100);
            num < 0 && (num = 0);
            sum[0] += num;
            sum[1] = ++i;
            sum[2] = (sum[0]/sum[1]).toFixed(2)
            return num||""
        });
        $(".res").html(sum.join(" "))
    }
   $('[type="text"]').on("input", calc)
   $('[type="checkbox"]').on("click", calc)
});
  </script>
</head>

<body>
<ul>
  <li><input type="checkbox" /><input type="text" maxlength="3"/></li>
  <li><input type="checkbox" /><input type="text" maxlength="3"/></li>
  <li><input type="checkbox" /><input type="text" maxlength="3"/></li>
  <li><input type="checkbox" /><input type="text" maxlength="3"/></li>
</ul>
<div class="res"></div>

</body>
</html>

Последний раз редактировалось рони, 07.01.2017 в 16:19.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка 'авторизации' DJ_CD Элементы интерфейса 4 18.12.2014 15:19
Проверка встроенной поддержки типа с помощью библиотеки Modernizr viy.li Общие вопросы Javascript 1 16.08.2013 12:02
проверка формы не работает в ie begelme Javascript под браузер 6 13.08.2013 01:00
Проверка встроенной поддержки типа с помощью библиотеки Modernizr viy.li Библиотеки/Тулкиты/Фреймворки 3 15.06.2013 15:48
Проверка полей отправляемой формы. denisOgr jQuery 6 18.10.2010 19:40