2010-07-13 3 views
1

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

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(); 
    }  
} 

ответ

1

Ваш 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; 
+0

У вас есть ошибка «за один» в вашей петле. Можете ли вы гарантировать, что «c [i] .type» будет строчным? – Sparafusile

+0

:) Я пропустил ошибку индексации при копировании кода OP. И да, я уверен, что в большинстве браузеров тип строчный. – casablanca

1
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, как это кажется, что вы только начинаете. Книга о стиле и последовательности кодирования тоже не могла бы повредить.

Смежные вопросы