채택완료

자바스크립트 좀 봐주세요. for문 돌리는데 잘 안되네요.

2015-03-24 (화) 17:16:27 3,765
Copy
<input  onclick="chk_o();" type='text' id='name1_1' name='name1_1' value='<?=$name1_1?>'  /><input  onclick="chk_o();" type='text' id='name1_2' name='name1_2' value='<?=$name1_2?>'  />.....<input  onclick="chk_o();" type='text' id='name1_31' name='name1_31' value='<?=$name1_31?>'  />  <input  style="text-align:right; width:30;" onclick="day_sum();" type='text' id='name1_33' name='name1_33' value='<?=$name1_33?>' itemname='합계' /> <script>function chk_o(name_num){ // 마우스 한번 클릭시 O 표시      document.getElementById('name1_'+name_num).value = "O";   } function day_sum() {    for(i=1; i < 32; i++) {   var day_chk = document.getElementById('name1_'+i).value;   if(day_chk == "O") {day_summ;}        }  //document.write(day_summ;  document.getElementById('name1_33').value  = day_summ; </script>​
 

자바스크립트를 이용해서 O 표시 합계를 내서 input 넣으려고 하는데 잘 안되네요...

구글신께 물어봤지만 답을 안주시네요... ㅠ.ㅠ

답변 1개 / 댓글 3개

채택된 답변
+20 포인트

var day_summ =0;

function day_sum() {

~~

if(day_chk == "O") {day_summ;}--->if(day_chk == "O") {day_summ++;} 

답변에 대한 댓글 3개

day_summ++ 잘 고쳤습니다.

근데 저 문제도 있었지만 아래의 문장에서 에러가 발생을 하네요...

var day_chk = document.getElementById('name1_'+i).value;

달력을 가지고 하다보니 일요일은 빠지게 되다보니 윗부분에서 일요일은 에러가 발생을 하네요...
저 코드로 하자면 당연히 name1_31 까지 id가 빠짐없이 있어야죠
jquery 사용중이겠죠?
<input class='myinput' ~~~>처럼 class 부여 후 아래처럼 하면 됩니다
$('.myinput').each(function(){
if( $(this).val() == "O") day_summ++;
}
============================
그런데 저렇게 할 것이 아니고 체크박스로 하면 간단하겠군요
<input type='checkbox' name='name1_1' value='o' class='myinput' <?if($name1_1) echo 'checked';?>>
~
~

체크한 갯수
day_summ = $(".myinput:checked").length;
아는게 힘이네요.. 수 많은 고민이 단 한방에 해결이 되네요.. 감사합니다.^^

답변을 작성하려면 로그인이 필요합니다.