으허엉..ㅠ JS로 input 필드 값 변경시키는 법 질문... > 십년전오늘

십년전오늘

10년전 추억의 책장을 넘기며

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

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

본문

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


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

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

댓글 전체

네 고녀석을 이용중인데 그냥 수량을 입력하게만 해놓음 문제가 없는데..
수량필드 옆에 위아래 화살표모냥버튼을 두고 클릭하면 수량필드에서 숫자가 가감되는 부분을 추가했는데... 필드 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>
© SIRSOFT
현재 페이지 제일 처음으로