Как бы я изменил этот код Javascript - PullRequest
0 голосов
/ 22 февраля 2012

Что мне нужно добавить, чтобы проверить, сколько флажков выбрано?Я хочу, чтобы пользователь установил как минимум два флажка перед отправкой данных.Вот мой код javascript:

    <script type="text/javascript" language="JavaScript">

function checkCheckBoxes(theForm) {
    if (
    theForm.Conservatives.checked == false &&
    theForm.Labour.checked == false &&
    theForm.LiberalDemocrats.checked == false) 
    {
        alert ('Choose At Least Two Parties Who Will Be Standing For This Election');
        return false;
    } else {    
        return true;
    }
}

</script> 

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

Ответы [ 6 ]

2 голосов
/ 22 февраля 2012

Просто посчитай, сколько проверено и посмотри, меньше ли оно 2.

function checkCheckBoxes(theForm) {
    var cnt = 0;
    if (theForm.Conservatives.checked) ++cnt;
    if (theForm.Labour.checked) ++cnt;
    if (theForm.LiberalDemocrats.checked) ++cnt;
    if (cnt < 2) {
        alert ('Choose At Least Two Parties Who Will Be Standing For This Election');
        return false;
    } else {    
        return true;
    }
}
0 голосов
/ 22 февраля 2012
function checkCheckBoxes(theForm) {
    var checkboxes = [theForm.Conservatives, theForm.Labour, theForm.LiberalDemocrats];
    var checked = 0;
    checkboxes.forEach(function(el){ 
                              if (el.checked) checked++;
                       });
    if (checked < 2) 
    {
        alert ('Choose At Least Two Parties Who Will Be Standing For This Election');
        return false;
    } else {    
        return true;
    }
}
0 голосов
/ 22 февраля 2012
function checkCheckBoxes(theForm) {
 if(theForm.Conservatives.checked + theForm.Labour.checked + theForm.LiberalDemocrats.checked > 1)return true;
 alert ('Choose At Least Two Parties Who Will Be Standing For This Election');
 return false;
}
0 голосов
/ 22 февраля 2012
function checkCheckBoxes(theForm) {
  var opts = ["Conservatives","Labour","LiberalDemocrats"],
      selected = 0;

  for (var i = 0; i < opts.length; i++) {
    if (theForm[opts[i]].checked)
      selected++;
  }
  if (selected < 2) {
    alert ('Choose At Least Two Parties Who Will Be Standing For This Election');
    return false;
  } else {    
    return true;
  }
}
0 голосов
/ 22 февраля 2012

Вы можете сделать:

if (theForm.Conservatives.checked +
    theForm.Labour.checked +
    theForm.LiberalDemocrats.checked) < 2)
{
 alert ('Choose At Least Two Parties Who Will Be Standing For This Election');
 return false;
} else {    
 return true;
}
0 голосов
/ 22 февраля 2012

Пока вы беспокоитесь только об этих трех флажках и не хотите использовать библиотеку JavaScript, самое простое, что я могу придумать, будет:

var checkedBoxes = [];

if(theForm.Conservatives.checked) 
    checkedBoxes.push(theForm.Conservatives);
if(theForm.Labour.checked)
    checkedBoxes.push(theForm.Labour);
if(theForm.LiberalDemocrats.checked)
    checkedBoxes.push(theForm.LiberalDemocrats;

// two or more boxes are checked
if(checkedBoxes.length < 2){
    alert('Choose at least two parties.');
}
else {
    // Do stuff with checkedBoxes.
}

Этот метод не будеттолько подсчитывает количество проверенных элементов, но также позволяет вам получить доступ только к отмеченным полям позже в вашем коде, если это необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...