2011-07-31 5 views
0

라디오 버튼과 체크 박스로 폼을 생성하고 있습니다. 나는 javascript onsubmit과 php로 폼을 검증하고 싶다. PHP가 작동하려면 이름에 []와 함께 체크 박스와 라디오 버튼을 써야합니다. (예 : ) 다른 주제를 검색하여 값을 선택하지 않은 사람들을 피하기 위해 radiobutton에 대한 기본 체크 값을 지정할 수 있음을 확인했습니다 . 괜찮아. 그러나 사람들이 3 개 이상의 확인란을 선택하지 않도록해야합니다. 이것은 내가 정의되지 않은 내 HTML 코드의 특성 '길이'를 읽을 수 없습니다 "라는 오류가PHP와 JS의 체크 박스로 작업하기

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; "; 
} 

수행 할 수 없습니다은 다음과 같습니다!의

<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" /> 

등 등

도움말 감사합니다 !!

답변

0

예 : 요소 컬렉션을 사용하여 요소에 액세스 :

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

참고 : 두 개 이상의 요소가있는 경우 nodeList가 반환됩니다.
주어진 이름의 요소가 하나 뿐인 경우 요소 자체를 반환하고 nodeList는 반환하지 않습니다.

또한이없이 항상 발견 얼마나 많은 요소 NodeList를 돌려주지 않는 것입니다 ...

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

querySelectorAll() (IE < 8에서 지원되지 않음)를 사용할 수 있습니다. 주석에


답변 :

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; "; } 
+0

감사합니다! 얼마나 많은 요소를 찾으려면 어떻게해야합니까? – user866339

+0

길이 속성을 확인하십시오. 요소가 하나만 있으면 "정의되지 않음"이됩니다. 그렇지 않으면 길이는 몇 개의 요소가 발견되었는지를 알려줍니다. –

+0

나는 아마 슈퍼 슈퍼 n00b되고 ... 어떻게해야 루프해야합니까? \t radio_count = 0; 위한 \t \t \t VAR (I = 0;. 난 ++; 나는 [ 'rec_pub_length []]을 길이 document.fic_rec.elements <) { \t \t \t \t (document.fic_rec.rec_pub_length [I] .checked를) {만약 \t \t \t \t \t radio_count = 1; (! radio_count = 1) \t \t \t \t} \t \t \t} \t \t \t 경우 {rec_error + = "이야기의 길이;"; } – user866339

관련 문제