๊ด€๋ฆฌ ๋ฉ”๋‰ด

bom's happy life

[JS] <option>ํƒœ๊ทธ์—๋Š” <a>ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์„ ๋•Œ ?_`onchange` ๋ณธ๋ฌธ

Deveolpment Study๐Ÿ—‚๏ธ/Javascript

[JS] <option>ํƒœ๊ทธ์—๋Š” <a>ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์„ ๋•Œ ?_`onchange`

bompeach 2023. 6. 7. 13:44

 

๋ฌธ์ œ : ๋‹ค๋ฅธ ์˜ต์…˜์„ ํด๋ฆญํ•˜๋ฉด ์˜ต์…˜๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์€๋ฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์ฝ”๋“œ๊ฐ€ ๋จนํžˆ์ง€ ์•Š๋Š”๋‹ค.

 

 

๋ฌธ์ œ์˜ ์ฝ”๋“œ :

<select class="rentOption" name="rentOption" id="rentOption">
	<option value="rentTime" hidden>${rentTime}</option>`;
								
	if(rentTime === '1') {
	rentList += `
	<option value="1" selected>1ํƒ€์ž„</option>
	<option value="2"><a href="#" onclick="optionClick('2');">2ํƒ€์ž„</a></option>
	<option value="3"><a href="#" onclick="optionClick('3');">3ํƒ€์ž„</a></option>`;
	} else if(rentTime === '2') {
	rentList += `
	<option value="1"><a href="#" onclick="optionClick('1');">1ํƒ€์ž„</a></option>
	<option value="2" selected>2ํƒ€์ž„</option>
        <option value="3"><a href="#" onclick="optionClick('3');">3ํƒ€์ž„</a></option>`;
	} else if(rentTime === '3') {
	rentList += `
	<option value="1"><a href="#" onclick="optionClick('1');">1ํƒ€์ž„</a></option>
	<option value="2"><a href="#" onclick="optionClick('2');">2ํƒ€์ž„</a></option>
	<option value="3" selected>3ํƒ€์ž„</option>`; 
	} 
	rentList += `
</select>

 

์ฐพ์•„๋ณด๋‹ˆ,

<option> ํƒœ๊ทธ ์•ˆ์— <a> ํƒœ๊ทธ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ HTML์˜ ๊ทœ์น™์— ๋”ฐ๋ผ ์ž˜๋ชป๋œ ๊ตฌ๋ฌธ์ด๊ณ , HTML ํ‘œ์ค€์—์„œ๋Š” <option> ํƒœ๊ทธ ์•ˆ์— ์ธ๋ผ์ธ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋„๋ก ์ง€์ •ํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  <option> ํƒœ๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ž˜์„œ <select> ํƒœ๊ทธ์— ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ(`onchange`) ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์˜ต์…˜์ด ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.

 

.

.

 

`onchange` ๋กœ ๋ณ€๊ฒฝํ•œ ์ฝ”๋“œ : 

rentList += `<td>
rentList += `
    <select class="rentTime_option" name="rentTime_option" id="rentTime_option" onchange="optionChange(this)">
    <option value="1" ${rentTime === '1' ? 'selected' : ''}>1ํƒ€์ž„(10:00~12:00)</option>
    <option value="2" ${rentTime === '2' ? 'selected' : ''}>2ํƒ€์ž„(13:00~15:00)</option>
    <option value="3" ${rentTime === '3' ? 'selected' : ''}>3ํƒ€์ž„(15:00~17:00)</option>
    </select>
    `;
</td>`;

๊ทธ๋Ÿฐ๋ฐ ์ € ์ฝ”๋“œ ์ž์ฒด์—๋„ ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด์„œ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ–ˆ๋‹ค.

${rentTime === '1' ? 'selected' : ''} ํ‘œํ˜„์‹์—์„œ ์—๋Ÿฌ๊ฐ€ ๋‚˜์„œ ํŽ˜์ด์ง€ ์ž์ฒด๊ฐ€ ๋œจ์ง€ ์•Š์•˜๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐ‘์˜ ์ฝ”๋“œ์™€ ๊ฐ™์ด ์ˆ˜์ •ํ–ˆ๋‹ค.

 

.

.

 

์ˆ˜์ •ํ•œ ์ฝ”๋“œ :

์ˆ˜์ •1 > 

rentList += `<td>\`
  <select class="rentTime_option" name="rentTime_option" id="rentTime_option" onchange="optionChange(this)">
    <option value="1" \${rentTime === '1' ? 'selected' : ''}>1ํƒ€์ž„(10:00~12:00)</option>
    <option value="2" \${rentTime === '2' ? 'selected' : ''}>2ํƒ€์ž„(13:00~15:00)</option>
    <option value="3" \${rentTime === '3' ? 'selected' : ''}>3ํƒ€์ž„(15:00~17:00)</option>
  </select>\`
</td>`;
rentList += '</tr>';

๋ฐฉ๋ฒ•1 ) ๋ฐฑํ‹ฑ ๋‚ด์—์„œ HTML ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ฐฑํ‹ฑ์„ ์ด์Šค์ผ€์ดํ”„(escape)ํ•ด์•ผํ•จ

 

 

rentList += '<td>';
rentList += '<select class="rentOption" name="rentOption" id="rentOption" onchange="optionChange(this)">';
rentList += '<option value="1"' + (rentTime === '1' ? 'selected' : '') + '>1ํƒ€์ž„(10:00~12:00)</option>';
rentList += '<option value="2"' + (rentTime === '2' ? 'selected' : '') + '>2ํƒ€์ž„(13:00~15:00)</option>';
rentList += '<option value="3"' + (rentTime === '3' ? 'selected' : '') + '>3ํƒ€์ž„(15:00~17:00)</option>';
rentList += '</select>';
rentList += '</td>';

๋ฐฉ๋ฒ• 2 ) ๋ฌธ์ž์—ด์„ ์ž‘์€๋”ฐ์˜ดํ‘œ(')๋กœ ๋‘˜๋Ÿฌ์‹ธ๊ณ , ๋ฌธ์ž์—ด ๋‚ด์—์„œ ๋ณ€์ˆ˜๋ฅผ ์‚ฝ์ž…ํ•˜๊ธฐ ์œ„ํ•ด + ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ๋˜, ์„ ํƒ๋œ ์˜ต์…˜์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์‚ผํ•ญ ์—ฐ์‚ฐ์ž(? :)๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์กฐ๊ฑด์— ๋”ฐ๋ผ selected ์†์„ฑ์„ ์ฃผ์—ˆ๋‹ค.