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

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

QA

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

본문


<form name="form" method="post" id="form" onsubmit="return submits(this);">
 
<select name="gi_edu_type[]">
<option value="">학력선택</option>
<option value="2">취학전아동</option>
<option value="3" >초중고생</option>
<option value="4">대학생</option>
</select>
<input type="text" name="gi_edu_value[]" inputmode="numeric">
 
<select name="gi_edu_type[]">
<option value="">학력선택</option>
<option value="2">취학전아동</option>
<option value="3" >초중고생</option>
<option value="4">대학생</option>
</select>
<input type="text" name="gi_edu_value[]" inputmode="numeric">
 
<select name="gi_edu_type[]">
<option value="">학력선택</option>
<option value="2">취학전아동</option>
<option value="3" >초중고생</option>
<option value="4">대학생</option>
</select>
<input type="text" name="gi_edu_value[]" inputmode="numeric">
 
</form>
 
<script>
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;
                }
            }
        }
    }
}
</script>

 

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

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

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

이게 안되네요 ㅠ.ㅠ

 

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

 

 

 

이 질문에 댓글 쓰기 :

답변 2

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

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


    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++) {
            ....

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

 

thumb-2009992035_1555643143.5465_730x392.png

 

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

 

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

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

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

회원로그인

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