Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   checkbox check если значение input (https://javascript.ru/forum/misc/39556-checkbox-check-esli-znachenie-input.html)

djonA 04.07.2013 00:12

checkbox check если значение input
 
Подскажите есть js который вставляет значения value в input в зависимости от checkbox checked или нет.

Вот такой:
<input id="tata" type="checkbox"> Чекбокс 
<input id="toto" type="text" value="">
 <script type="text/javascript">
	document.getElementById('tata').onclick = function () {
	  if (this.checked) document.getElementById('toto').value = 1;  else document.getElementById('toto').value = '';
	}
	</script>



мне надо добавить в js еще поверку на
<input id="toto" type="text" value="1"> - ставим галочку в checkbox

или

<input id="toto" type="text" value=""> - выводим без галочки checkbox


Если значение у input'a - 1 то делать checkbox checked по умолчанию, ну и наоборот

рони 04.07.2013 01:11

djonA,
:-?
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>
<body>
<input id="tata" type="checkbox"> Чекбокс
<input id="toto" type="text" value="1">
 <script type="text/javascript">
    document.getElementById('tata').checked = document.getElementById('toto').value
	document.getElementById('tata').onclick = function () {
	  if (this.checked) document.getElementById('toto').value = 1;  else document.getElementById('toto').value = '';
	}
	</script>

</body>

</html>

djonA 04.07.2013 01:13

Да спасибо большое что то туплю сегодня

danik.js 04.07.2013 05:19

Цитата:

Сообщение от рони
if (this.checked) document.getElementById('toto').value = 1;  else document.getElementById('toto').value = '';

Это упрощается до:
document.getElementById('toto').value = this.checked ? 1 : '';

Вот такая магия тернарного оператора.

Exquisitor 09.10.2013 12:42

а как сделать наоборот, если начинаешь вводить в пустое поле input text значение "цифровое!" , то врубается чекбокс?

danik.js 09.10.2013 12:59

<!DOCTYPE html>
<label><input id="tata" type="checkbox" disabled="" /> Чекбокс</label>
<input id="toto" type="text" value="цифровое!" />
<script>
(function(){
    var input = document.getElementById('toto');
    var checkbox = document.getElementById('tata');
    var oninput = function() {
        checkbox.checked = input.value.indexOf('цифровое!') === 0;
    };
    input['oninput' in input ? 'oninput' : 'onpropertychange'] = oninput;
    oninput();
})()
</script>

Exquisitor 09.10.2013 15:52

понял. благодарю. "цифровое" я имел в виду, что цифра) но суть вижу, решение подходит!

danik.js 09.10.2013 19:40

Если поддержка IE8 не нужна, то onpropertychange можно выкинуть, оставив oninput

vav82 14.01.2014 06:44

Здравствуйте уважаемые программисты подскажите как дописать скрипт чтобы он умножал сумму выделенных чекбоксов на число введенное в поле инпут текст. (чтобы умножалось на количество гостей.)

<script type="text/javascript">function getSum()
{
var sum = 0;
var vision = 0;
for (var i=1; i<=38; i++)
{
var obj = document.getElementById('checkbox_'+i);
if (obj.checked)
{
sum += parseInt(obj.value);
vision = 1;
}
}
var obj = document.getElementById('sum');
if (vision != 0)
{
obj.setAttribute('style', 'display: block;');
obj.innerHTML = 'Сумма: ' +sum;
}
else
{
obj.setAttribute('style', 'display: none;');
}
}
</script>

Вот то что я не могу сделать, последнее осталось умножить сумму на количество гостей. Моих знаний не хватает. (скрипт нашел в сети и поправил под себя) Ссылка тыц


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