Флажок вызова, только если установлен - PullRequest
0 голосов
/ 25 марта 2011

У меня есть флажок, который переключается с помощью кнопки, но мне также нужно добавить его значение в уравнение, ТОЛЬКО ЕСЛИ оно проверено.то, что я получил прямо сейчас, это, но это просто добавить независимо от того, установлен флажок или нет

<html>
<head>
<script language=javascript>
function validate(chk){
  if (chk.checked == 1)
    chk.checked = 0;
  else
    chk.checked = 1; 
}
</script>

<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
</head>
<body>
<form name="myform">
<input type="checkbox" name="ghj" id="ghj" value="100000">testing sheep<br>
<input type="button" class="button-primary widget-control-save" name="Check_All" value="Check All" onmouseout="compute(this.form)" onClick="validate(ghj)">
<input type="text" id="rslt" name="rslt">
</form>
<script type="text/javascript">
<!-- hide this script from old browsers
function compute(form)
{
var test = parseInt(document.getElementById('ghj').value, 10) || 0;
f = (test + 10);

document.getElementById('rslt').value = f;
}

// done hiding from old browsers -->
</script>
</body>
</html>

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

Ответы [ 2 ]

1 голос
/ 25 марта 2011

Если вы хотите вычислить только флажок, который отмечен.Затем сделайте что-то подобное

function compute(frm){
    var test = 0;
    for(var i = 0; i < frm.elements.length; i++){
        if(frm.elements[i].type == 'checkbox'){
            if(frm.elements[i].checked){ //Do something if checkbox is checked
                test += parseInt(frm.elements[i].value);
            }
        }
    }
    document.getElementById('rslt').value = test;

}

См. Пример кода jsfiddle.net / 5u5TH

1 голос
/ 25 марта 2011

Мне понадобилось немного времени, чтобы понять, что вы спрашиваете, но я думаю, что вы хотите сделать что-то вроде этого:

function compute(form)
{
  var checkbox = document.getElementById('ghj');
  if(checkbox.checked) {
    var test = parseInt(checkbox.value, 10) || 0;
    f = (test + 10);
    document.getElementById('rslt').value = f;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...