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

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

QA

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

본문


<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

var day_summ =0;

function day_sum() {

~~

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

 

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;

답변을 작성하시기 전에 로그인 해주세요.
전체 27
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT