При отправке - установите хотя бы один флажок - PullRequest
1 голос
/ 13 июля 2010

У меня есть несколько флажков.При нажатии кнопки «Отправить» я хочу проверить, установлен ли хотя бы один флажок.Его не работает

function doSubmit(){
    function check_checkboxes() 
    { 
    checked=false;
    var c = document.getElementsByTagName('input'); 
    for (var i = 1; i < c.length; i++) 
    { 
        if (c[i].type == 'checkbox') 
        { 
        if (c[i].checked) {
        return true} 
        else {alert("Please identify what warehouses comply:");  }
            } 
        } 
        document.holiDay.command.value= 'addingApp'; //My struts Action to perform if selected
        document.holiDay.submit(); 
    }    
}

Ответы [ 2 ]

1 голос
/ 13 июля 2010

Ваш alert должен находиться вне цикла for, в противном случае вы будете получать сообщение для каждого флажка, который не отмечен, даже если один из них действительно установлен.Примерно так должно работать:

for (var i = 0; i < c.length; i++) {
  if (c[i].type == 'checkbox' && c[i].checked == true) {
    // At least one checkbox IS checked
    document.holiDay.command.value= 'addingApp'; //My struts Action to perform if selected
    document.holiDay.submit();
    return true;
  }
}

// Nothing has been checked
alert("Please identify what warehouses comply:");
return false;
1 голос
/ 13 июля 2010
function doSubmit()
{
  var c = document.getElementsByTagName('input'); 
  for( var i = 0; i < c.length; i++ )
  { 
    if( c[i].type.toLowerCase() == 'checkbox' && c[i].checked ) 
    {
      // A checkbox was checked, good user
      return( true );
    } 
  }
  // No checkbox checks, bad user
  return( false );
}

Я бы предложил почитать книгу по JavaScript, так как кажется, что вы только начинаете. Книга о стиле и последовательности кодирования тоже не помешает.

...