document.pressed=this.value

document.pressed=this.value

QA

document.pressed=this.value

본문

1. item.form.skin.php(장바구니 담는 폼) 파일에서 붉은 색 글자 부분이 정의(설명) 되어있는 

웹페이지를 찾아볼수 있을까요? 검색이 안되네요

 

 <input type="submit" onclick="document.pressed=this.value;" value="장바구니" id="sit_btn_cart">

 <input type="submit" onclick="document.pressed=this.value;" value="바로구매" id="sit_btn_buy">


2. document.pressed=this.value 이게 무슨뜻입니까? 예상은 해보는데 아무래도 정확히 설명되어있는 문서를 보고싶습니다.

  

3. this.value라는 것은 정확히 어느것을 말합니까?  this라는 것은 장바구니 버튼을 말합니까?

form 을 말합니까?

 

  

답변 주시는 분에게 기분 좋은 일만 있기를 ^^

이 질문에 댓글 쓰기 :

답변 4

1. 저도 별로 안쓰던 표현인데 구글에서 검색은 되는데 뚜렷한 설명은 없네요.

http://stackoverflow.com/questions/5836693/call-a-document-pressed-action-from-the-url-bar 

 

2. 사용된 형태로 봤을때. 이벤트 호출이 아니라 document 내에서 사용되는 전역변수로 사용된것 같습니다.

onclick 다음에 들어간 "=" 은 onclick 이벤트가 발생되는 시점에 실행될 코드를 기술한 것이고,

document.pressed 다음에 "=" 은 말그대로 pressed 라는 변수에 this.value 를 대입하라는 의미 인 것이죠.

 

3. this 라는 것은 이벤트가 발생된 현재의 객체중 가장 작은 단위 (window => document => element ...)를 적용하게 되므로 현재 this 가 사용된 객체는 input 객체입니다. 해당 input 객체에서 value 값에는 "장바구니"가 정의되어 있습니다. 따라서 해당 submit 이 클릭되었을때(onclick) document.pressed 라는 전역 변수에 "장바구니" 라는 값을 대입해라 라는 의미 입니다.

해당 페이지 소스 아래쪽에 쭉 내려가 보시면 스트립트 함수부분에 해당 폼이 submit 되었을때 document.pressed 값에 따라서 분기를 타는 부분이 있습니다.

 


    if (document.pressed == "장바구니") {
        f.sw_direct.value = 0;
    } else { // 바로구매
        f.sw_direct.value = 1;
    }

즉, 해당 부분은 꼭 document.pressed 를 쓰지 않더라도, 사전에 임의의 전역변수를 정의하고 해당 변수에 값을 할당해서 사용해도 되는데 좀더 명시적으로 사용하고 변수의 적용범위에 따른 발생될수 있는 문제를 해결하기 위해 해당 변수를 사용할뿐인 것입니다.

정말 감사합니다.

말씀처럼 변수로 보이네요

그런데
document 내에서 사용되는 전역변수로 사용되었다면 선언한 곳이라도 혹시 있어야 하지 않은가요? ^^

선언에 대해서 코멘트를 남기셔서 자바스크립트 전역변수에 대해서 검색해 봤는데요.

 

http://www.w3schools.com/js/js_reserved.asp 

pressed 단어가 예약어 목록에 없는 것 보면 자체적으로 생성된 변수는 아닌것 같습니다.

 

http://codingnuri.com/javascript-tutorial/javascript-variable-declaration-and-scope.html 

설명에 보시면 자바스크립트에서 var 없이 선언하는 변수는 자동으로 전역변수가 된다고 설명이 되어있습니다.

따라서 var 로 선언하지 않고 사용시점에 직접 값을 할당한 document.pressed 는 전역변수로 생성되어 사용된 것으로 보여집니다.

 

명확히 설명 가능한 this.value 는 현재 input의 value 값입니다.

 <input type="submit" onclick="document.pressed=this.value;" value="장바구니" id="sit_btn_cart">

위의 것의 this.value 는 장바구니겠죠..

감사합니다.
제가 위에 관련 소스를 올려드렸는데요.
그럼 현재 input의 value라는 것은 어떤것인지요?

아래에서 onclick다음에 "="이 들어갔는데... 또 document.pressed 다음에 "="이 또 들어가는게 이해가 안가는데요... 관련 설명을 javascript 매뉴얼에서 어느 부분을 찾아봐야 할까요?
onclick="document.pressed=this.value;"

관련 소스 입니다(답변 주시는 분 보시라고 - 참고로 올려드립니다)


<form name="fitem" method="post" action="<?php echo $action_url; ?>" onsubmit="return fitem_submit(this);">

<input type="hidden" name="it_id[]" value="<?php echo $it_id; ?>">

<input type="hidden" name="sw_direct">

<input type="hidden" name="url">


<div id="sit_ov_wrap">

<!-- 상품이미지 미리보기 시작 { -->

<div id="sit_pvi">

<div id="sit_pvi_big">

<?php

$big_img_count = 0;

$thumbnails = array();

for($i=1; $i<=10; $i++) {

if(!$it['it_img'.$i])

continue;


$img = get_it_thumbnail($it['it_img'.$i], $default['de_mimg_width'], $default['de_mimg_height']);


if($img) {

// 썸네일

$thumb = get_it_thumbnail($it['it_img'.$i], 60, 60);

$thumbnails[] = $thumb;

$big_img_count++;


echo '<a href="'.G5_SHOP_URL.'/largeimage.php?it_id='.$it['it_id'].'&no='.$i.'" target="_blank" class="popup_item_image">'.$img.'</a>';

}

}


if($big_img_count == 0) {

echo '<img src="'.G5_SHOP_URL.'/img/no_image.gif" alt="">';

}

?>

</div>

<?php

// 썸네일

$thumb1 = true;

$thumb_count = 0;

$total_count = count($thumbnails);

if($total_count > 0) {

echo '<ul id="sit_pvi_thumb">';

foreach($thumbnails as $val) {

$thumb_count++;

$sit_pvi_last ='';

if ($thumb_count % 5 == 0) $sit_pvi_last = 'class="li_last"';

echo '<li '.$sit_pvi_last.'>';

echo '<a href="'.G5_SHOP_URL.'/largeimage.php?it_id='.$it['it_id'].'&no='.$thumb_count.'" target="_blank" class="popup_item_image img_thumb">'.$val.'<span class="sound_only"> '.$thumb_count.'번째 이미지 새창</span></a>';

echo '</li>';

}

echo '</ul>';

}

?>

</div>

<!-- } 상품이미지 미리보기 끝 -->


<!-- 상품 요약정보 및 구매 시작 { -->

<section id="sit_ov">

<h2 id="sit_title"><?php echo stripslashes($it['it_name']); ?> <span class="sound_only">요약정보 및 구매</span></h2>

<p id="sit_desc"><?php echo $it['it_basic']; ?></p>


<?php if($is_orderable) { ?>

<p id="sit_opt_info">

상품 선택옵션 <?php echo $option_count; ?> , 추가옵션 <?php echo $supply_count; ?>

</p>

<?php } ?>

<div id="sit_star_sns">

<?php if ($star_score) { ?>

고객평점 <span><?php echo $star_score?></span>

<img src="<?php echo G5_SHOP_URL; ?>/img/s_star<?php echo $star_score?>.png" alt="" class="sit_star">

<?php } ?>

<?php echo $sns_share_links; ?>

</div>

<table class="sit_ov_tbl">

<colgroup>

<col class="grid_3">

<col>

</colgroup>

<tbody>

<?php if ($it['it_maker']) { ?>

<tr>

<th scope="row">제조사</th>

<td><?php echo $it['it_maker']; ?></td>

</tr>

<?php } ?>


<?php if ($it['it_origin']) { ?>

<tr>

<th scope="row">원산지</th>

<td><?php echo $it['it_origin']; ?></td>

</tr>

<?php } ?>


<?php if ($it['it_brand']) { ?>

<tr>

<th scope="row">브랜드</th>

<td><?php echo $it[

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

회원로그인

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