login register Sysop! about ME  

2018년 10월 17일 11시 48분 00초,     조회수 : 301
  제목 : 목록이 2개이상일만 스크립트가 동작을 하는데 1개일때도 동작하게 하려면 어떻게 해야할까요?
SEQ : 24086 글쓴이 : mimi456

작성 포맷 : TEXT 모드, 자동 줄바꿈 사용

<SCRIPT>
function test1() {
for (i = 0; i < ScoreForm.edit0.length; i++) //생성된 input 엘리먼트 수만큼 실행
	   {
	   edit0 = parseInt(ScoreForm.edit0[i].value); //
	   edit1 = parseInt(ScoreForm.edit1[i].value); //
	   edit2 = parseInt(ScoreForm.edit2[i].value); //
	   	   ScoreForm.sum1[i].value = edit1 + edit2; // 소계1
	   }
}
//-->
</SCRIPT>

 <body>
 <form name="ScoreForm" method="post" action="test.asp">
	   <tr>
	   	   <td><input name="edit0" value="<%=edit0%>" maxlength="5" size=5 onKeyUp="test1
();"></td>
	   	   <td><input name="edit1" value="<%=edit1%>" maxlength="3" size=5 onKeyUp="test1
();"></td>
	   	   <td><input name="edit2" value="<%=edit2%>" maxlength="3" size=5 onKeyUp="test1
();"></td>
	   	   <td><input name="sum1" value="<%=sum1%>" maxlength="3" size=5 onKeyUp="test1();" 
readonly></td>  
	   </tr>
</form>
 </body>

  virgo75
  2018-10-18(10:04)
캐릭 이미지
위와 같은 경우는 배열이 안되었을때 (간단하게 질문자분이 말씀하듯이 1개일때 나타나는
증상) 나타나는 증상이고, 현재 for문을 돌릴려고 하는 것이 배열인지 아닌지 검사하고 배
열이면 for문으로 아니면 단문처리하게 구문을 구성하면 해결됩니다.

  봔™
  2018-10-19(14:35)
캐릭 이미지
함수를 이렇게 바꿔보세요.
function test1() {
let edit0 = document.getElementsByName("edit0");
let edit1 = document.getElementsByName("edit1");
let edit2 = document.getElementsByName("edit2");
let sum1 = document.getElementsByName("sum1");

edit0.forEach((obj, index) => sum1[index].value =
parseInt(edit1[index].value) + parseInt(edit2[index].value));
}



제목 작성자 날짜 조회
목록이 2개이상일만 스크립트가 동작을 하는데 1개일때도 동작하게 .. (2) mimi456 2018-10-17 301

 
 
.NET과 Java 동영상 기반의 교육사이트

로딩 중입니다...

서버 프레임워크 지원 : NeoDEEX
based on ASP.NET 3.5
Creative Commons License
{5}
{2} 읽음   :{3} ({4})