으허엉..ㅠ JS로 input 필드 값 변경시키는 법 질문... > 자유게시판

자유게시판

으허엉..ㅠ JS로 input 필드 값 변경시키는 법 질문... 정보

으허엉..ㅠ JS로 input 필드 값 변경시키는 법 질문...

본문

http://sir.co.kr/bbs/tb.php/g4_qa/135541


요기 봐주세영...ㅠㅠ
이거 열심히 삽질중이네여..ㅋㅋㅋ
성공하면 소스 정리해서 올릴랍니다...ㅋㅋ

영카트 리스트에서 수량 입력 가능하게하고...
체크박스에 체크할 수 있게 해서.. 일괄적으로 장바구니에 구겨넣는 기능...
다른건 다 됐는데 ct_qty[$i] 의 값 전달이 잘 안되서.ㅠ
추천
0

댓글 7개

영카트 온라인 견적 기능을 응용하시면 됩니다.
온라인 견적을 사용하게 되면 체크박스에 따라 가격도 자동계산됩니다.
네 고녀석을 이용중인데 그냥 수량을 입력하게만 해놓음 문제가 없는데..
수량필드 옆에 위아래 화살표모냥버튼을 두고 클릭하면 수량필드에서 숫자가 가감되는 부분을 추가했는데... 필드 name이 문제가 되네요..
왜 문제가 되는지 모르는게 문제라면 문제이지만..ㅠ

다음과 같은 스크립트를 사용합니다.. 해당부분의 구문을 첨부합니다.

<script>
function qty_change(obj, value)
{
if(value) {
obj.value = parseInt(obj.value) + 1;
}
else {
obj.value = parseInt(obj.value) - 1;
}

if(obj.value < 0) obj.value = 0;
}
</script>




<td align='center' rowspan='2'>
<input type='text' name='ct_qty[$i]' id='ct_qty_num_$i' value='0' size='4' maxlength='4' class='ed' autocomplete='off' style='text-align:right;' />
<img src='/shop/img/qty_control.gif' border=0 align=absmiddle usemap=\"#qty_control_map_{$i}\"> 개
<map name='qty_control_map_{$i}'>
<area shape='rect' coords='0, 0, 10, 9' href=\"javascript:qty_change(document.getElementById(ct_qty_num_{$i}), true);\">
<area shape='rect' coords='0, 10, 10, 19' href=\"javascript:qty_change(document.getElementById(ct_qty_num_{$i}), false);\">
</map></td>


이상하게 id값이 맞는데 동작을 안하는...

ct_qty[$i] < 이렇게 사용하면 cartupdate에서는 기본값이라 잘 작동하는데...
ct_qty_[$i] < 이렇게 사용하면 작동을안해서..
document.getElementById 를 자바스크립트 안에 넣어보세요....
그리고 $i 함수는 php내에서 echo를 할 시에만 쓸수 있고 보통은 <?=$i?> 라고 해줘야합니다
제가 쓰는 함수입니다. (저도 똑같은걸 만들었죠..)
function change_qty(f, fld, idx)
{
    var qty = parseInt(fld.value);
    if( (fld.value.search(/[^0-9]+/) != -1) || (qty < 0) || (isNaN(qty) == true) )
    {
        alert('수량을 바르게 입력해 주십시오.');
        fld.focus();
        return false;
    }

    compute_line(f, idx);
}

function qty_add(f, num, idx)
{

var qty = parseInt(document.getElementById('ct_qty_'+idx).value);
    var selidx = document.getElementById('it_id_'+idx).value;

   
    if (num < 0 && qty <= 0)
    {
        qty = 0;
    }
    else if (num > 0 && qty >= 9999)
    {
        alert("수량은 9999 이하만 가능합니다.");
        qty = 9999;
    }
    else
    {
        qty = qty + num;
    }
   
    document.getElementById('ct_qty_'+idx).value = qty;
   
    compute_line(f, idx);
}function qty_add(f, num, idx)
{

var qty = parseInt(document.getElementById('ct_qty_'+idx).value);
    var selidx = document.getElementById('it_id_'+idx).value;

   
    if (num < 0 && qty <= 0)
    {
        qty = 0;
    }
    else if (num > 0 && qty >= 9999)
    {
        alert("수량은 9999 이하만 가능합니다.");
        qty = 9999;
    }
    else
    {
        qty = qty + num;
    }
   
    document.getElementById('ct_qty_'+idx).value = qty;
   
    compute_line(f, idx);
}

<input type=text id='ct_qty_<?=$idx?>' name='ct_qty[<?=$idx?>]' value='1' size=1 maxlength=5 class=ed autocomplete='off' style='text-align:right;' onblur="change_qty(this.form, this, <?=$idx?>); compute_total(this.form);">
<img src='<?=$g4[shop_img_path]?>/qty_control.gif' border=0 align=absmiddle usemap="#qty_control_map<?=$idx?>">
<map name="qty_control_map<?=$idx?>">
<area shape="rect" coords="0, 0, 10, 9" href="javascript:qty_add(this.form, +1, <?=$idx?>);">
<area shape="rect" coords="0, 10, 10, 19" href="javascript:qty_add(this.form, -1, <?=$idx?>);">
</map>
와우~ 모두 답변 감사드립니다^^;
이번을 계기로 해서 자바스크립트랑 좀 더 제대로 공부해봐야겠어요 ㅠㅠ
전체 199,654 |RSS
자유게시판 내용 검색

회원로그인

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