테스트 사이트 - 개발 중인 베타 버전입니다

[배열] select 값에따른 input 값의 한도를 체크하려 합니다. 채택완료

감기약 6년 전 조회 1,636

<form name="form" method="post" id="form" onsubmit="return submits(this);"></p>

<p> </p>

<p><select name="gi_edu_type[]"></p>

<p><option value="">학력선택</option>

<option value="2">취학전아동</option>

<option value="3" >초중고생</option>

<option value="4">대학생</option>

</select></p>

<p><input type="text" name="gi_edu_value[]" inputmode="numeric"></p>

<p> </p>

<p><select name="gi_edu_type[]"></p>

<p><option value="">학력선택</option>

<option value="2">취학전아동</option>

<option value="3" >초중고생</option>

<option value="4">대학생</option>

</select></p>

<p><input type="text" name="gi_edu_value[]" inputmode="numeric"></p>

<p> </p>

<p><select name="gi_edu_type[]"></p>

<p><option value="">학력선택</option>

<option value="2">취학전아동</option>

<option value="3" >초중고생</option>

<option value="4">대학생</option>

</select></p>

<p><input type="text" name="gi_edu_value[]" inputmode="numeric"></p>

<p> </p>

<p></form></p>

<p> </p>

<p><script></p>

<p>function submits(f) {

    for (var i = 0; i< 20; i++) { 

        if (f.gi_edu_type[i].value != "") {

            if(f.gi_edu_type[i].value == 4){

                if(f.gi_edu_value[i].value > 9000000) {

                    alert("대학생 교육비는 최대 900만원까지 입력가능합니다.");

                    f.gi_edu_value[i].focus();

                    return false;

                }

            } else if(f.gi_edu_type[i].value == 3){

                if(f.gi_edu_value[i].value > 3000000) {

                    alert("초중고 교육비는 최대 300만원까지 입력가능합니다.");

                    f.gi_edu_value[i].focus();

                    return false;

                }

            } else if(f.gi_edu_type[i].value == 2){

                if(f.gi_edu_value[i].value > 3000000) {

                    alert("취학전 아동 교육비는 최대 300만원까지 입력가능합니다.");

                    f.gi_edu_value[i].focus();

                    return false;

                }

            }

        }

    }</p>

<p>}</p>

<p></script></p>

<p>

 

소스를 보시면 각 학력을 선택하고

그에따른 금액을 입력하려 합니다.

동적으로 추가되는 폼이라서 배열로 해야하는데요

이게 안되네요 ㅠ.ㅠ

 

혹시 아시는분 계시면 부탁 드립니다.

 

 

 

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

답변 2개

채택된 답변
+20 포인트

배열이라 f.gi_edu_type 이 아니라 f.elements['gi_edu_type[]'] 로 접근하셔야 할것 같은데,

기존 코드를 안고치고 하려면 아래처럼 하시면 될듯합니다.

</p>

<p>    function submits(f) {

        f.gi_edu_type = f.elements['gi_edu_type[]'];     // 추가

        f.gi_edu_value = f.elements['gi_edu_value[]'];   // 추가

        for (var i = 0; i< 20; i++) {</p>

<p>            ....</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

감기약
6년 전
너무 감사합니다 ^^
혹시 같은 조건에 더 좋은 코드가 있다면 시간나실때 알려주세용~

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

뭐를 기대하시고 뭐가 안되시는건지요? 저렇게 하면..

 

 

테스트 페이지 만들어서 해보니..이렇게 포스팅 됩니다. (폼에 입력 다 하고 확인 눌렀을 때 $_POST 값)

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

감기약
6년 전
답변주셔서 감사합니다.
다시 질문글을 보니 설명이 많이 부족하네요

해당부분에서 select 값에따른 input 값의 한도를 주려한것입니다.
두 값모두 배열[]로 입력되는 상태라 select 값이 2일경우에 input 값이 3000000 을 초과하여 입력하지 못하도록 하려 합니다.

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

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

로그인