Frontend/JavaScript

[JavaScript] input ํƒœ๊ทธ disabled ์†์„ฑ์„ ์ด์šฉํ•œ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™”

_์„ฑํ˜ธ_ 2022. 5. 15. 16:11
728x90
๋ฐ˜์‘ํ˜•

๊ฒฝ๋งค ์„œ๋น„์Šค ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋‹ค๋ณด๋‹ˆ ์ƒํ™ฉ์— ๋”ฐ๋ฅธ ๋ฒ„ํŠผ ๋น„ํ™œ์„ฑํ™”๊ฐ€ ํ•„์š”ํ•˜์˜€๊ณ , ์ด๋ฅผ ์œ„ํ•ด ๊ธฐ๋ณธ์ ์ธ ๋ฒ„ํŠผ ๋น„ํ™œ์„ฑํ™” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค.

 

input ํƒœ๊ทธ ๋‚ด์— disabled ์†์„ฑ ์‚ฌ์šฉ

See the Pen button disabled by SeongHo-C (@seongho-c) on CodePen.

 

<input type="button" value="ํ™œ์„ฑํ™”">

  • input ํƒœ๊ทธ์— disabled ์†์„ฑ์„ ๋”ฐ๋กœ ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด, ๋ฒ„ํŠผ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™” ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

<input type="button" value="๋น„ํ™œ์„ฑํ™”" disabled>

  • input ํƒœ๊ทธ์— disabled ์†์„ฑ์„ ๋ช…์‹œํ•ด ์ฃผ๋ฉด, ๋ฒ„ํŠผ์€ ๋น„ํ™œ์„ฑํ™” ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

 

ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™” ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ๋ฒ„ํŠผ์˜ ์ƒํƒœ ๋ณ€๊ฒฝ

See the Pen button click disabled by SeongHo-C (@seongho-c) on CodePen.

 

[JAVASCRIPT]

const target = document.getElementById('target_btn');

  • ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™” ์‹œํ‚ฌ DOM Element๋ฅผ target ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค.

btnActive.addEventListener('click', () => target.disabled = false);

btnDisabled.addEventListener('click', () => target.disabled = true);

  • ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™” ๋ฒ„ํŠผ์— ํด๋ฆญ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.
  • ์„ ํƒ๋œ DOM Element์˜ disabled ๊ฐ’์„ false/true๋กœ ์„ค์ •ํ•œ๋‹ค.
  • disabled ๊ฐ’์ด false์ด๋ฉด ๋ฒ„ํŠผ์ด ํ™œ์„ฑํ™” ๋˜๊ณ , true์ด๋ฉด ๋ฒ„ํŠผ์ด ๋น„ํ™œ์„ฑํ™”๋œ๋‹ค.

 

์ง์ ‘ ์‚ฌ์šฉํ•œ ์˜ˆ

    // ํ›„๊ธฐ์ž‘์„ฑ ๋ฒ„ํŠผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ธฐ
    reviewWriteDisabled();
    function reviewWriteDisabled() {
      const product = data.data;

      for (let i = 0; i < data.count; i++) {
        const target = document.getElementById('reviewWrite' + i);
        // ๋‚™์ฐฐ์ž์˜ Id์™€ ๋กœ๊ทธ์ธํ•œ ์ž…์ฐฐ์ž์˜ Id๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ 
        if (product[i].successBidderId == memberId) {
          // ๋‚™์ฐฐ๋œ ์ƒํ’ˆ์— ๋Œ€ํ•œ ํ›„๊ธฐ๋ฅผ ์ด๋ฏธ ์ž‘์„ฑํ•œ ๊ฒฝ์šฐ 
          if (product[i].reviewYn == 'Y') {
            target.disabled = true;
          } else {
            target.disabled = false;
          }
        }
      }
    }

 

const target = document.getElementById('reviewWrite' + i);

  • ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™” ์‹œํ‚ฌ DOM Element๋ฅผ target ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค.

target.disabled = true;

  • ๋‚™์ฐฐ๋œ ์ƒํ’ˆ์— ๋Œ€ํ•œ ํ›„๊ธฐ๋ฅผ ์ด๋ฏธ ์ž‘์„ฑํ•œ ๊ฒฝ์šฐ ํ›„๊ธฐ ์ž‘์„ฑ ๋ฒ„ํŠผ์ด ๋น„ํ™œ์„ฑํ™” ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

target.disabled = false;

  • ๋‚™์ฐฐ๋œ ์ƒํ’ˆ์— ๋Œ€ํ•œ ํ›„๊ธฐ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ›„๊ธฐ ์ž‘์„ฑ ๋ฒ„ํŠผ์ด ํ™œ์„ฑํ™” ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.