Работа с флажками в PHP и JS - PullRequest
0 голосов
/ 31 июля 2011

Я создаю форму с обоими переключателями и флажками.Я хочу проверить форму с javascript onsubmit и php.Чтобы php работал, я должен написать флажки и радиокнопки с [] в названии (например). Я искал другие темы и увидел, что могу поставить значение по умолчанию для радиокнопок, чтобы избежать вероятности того, что люди не выберут значение.Все в порядке.Однако мне также нужно убедиться, что люди отмечают не более 3-х флажков.Это не может быть сделано с

var count = 0;
for (x=0; x<document.fic_rec.rec_genre.length; x++){
    if (document.fic_rec.rec_genres[x].checked){
        count++;
    }
}

if (count==0){
    rec_error += "at least 1 genre; ";
}
else if (count>3){
    rec_error += "no more than 3 genres; ";
}   

Я получаю сообщение об ошибке: «Не удается прочитать свойство« длина »неопределенного» Мой HTML-код выглядит следующим образом:

<ul class="sub_ul">
<li class="sub">
<input type="checkbox" name="rec_genres[]" id="action"value="action" />
<label for="action">Action/Adventure</label></span><li class="sub"><u>Alternative reality</u></li>
<li class="sub_sub"><input type="checkbox" name="rec_genres[]" id=au_history     value="au_history" />
<label for="au_history">AU History</label></li><li class="sub_sub"><input type="checkbox" name="rec_genres[]" id=au_universe value="au_universe" />
<label for="au_universe">AU Universe</label></li><li class="sub_sub"><input type="checkbox" name="rec_genres[]" id=au_other     value="au_other" />

и т. Д.

Помогите! Спасибо !!

1 Ответ

0 голосов
/ 31 июля 2011

Используйте, например, коллекцию элементов для доступа к этим элементам:

document.fic_rec.elements['rec_genres[]']

Обратите внимание: это вернет nodeList, если найдено более 1 элемента.
Если имеется только 1 элемент сданное имя возвращает сам элемент, а не nodeList.

Вы также можете использовать querySelectorAll() (не поддерживается IE <8) </p>

document.querySelectorAll('form[name="fic_rec"] input[name="rec_genres[]"]')

... это будетвсегда возвращайте nodeList, независимо от того, сколько элементов найдено.


Ответ на комментарий:

var radio_count = 0;         
for (var i=0;i<document.fic_rec.elements['rec_pub_length[]'].length;i++) 
{ 
  if (document.fic_rec.elements['rec_pub_length[]'][i].checked) 
  { 
    radio_count = 1; 
    break;
  } 
} 
if (radio_count != 1) { rec_error += "story length; "; } 
...