
radio버튼은 여러개의 선택지 중 하나만 선택할 수 있어야한다.
하지만 각각의 radio 버튼이 독립적으로 만들어져서 모든 radio버튼을 선택이 되는 버그가 발생하였다.
여러개의 선택지 중 하나만 선택할 수 있게 하려면 radio버튼들을 그룹화하여 하나의 그룹으로 묶는 방법이 있다.
바로 radio버튼의 속성 중 name 속성을 이용하는 것이다.
radio 버튼을 그룹화하기 위해 name속성을 설정하고, 이를 고유한 값으로 설정하면 정상적으로 잘 동작이 된다.
코드확인하기
<!-- 설문조사 -->
<div v-if="viewType === 'KN06' ? true : false" class="surveyWrap">
<div class="surveyTitle">
<p class="font-bold">설문 항목 구성</p>
<CommonButton
@click="createServeyList"
class="btn_ic_md btn_pri"
title="추가버튼"
>
<template #leading>
<Icon name="ic:baseline-add" />
</template>
</CommonButton>
</div>
<div class="surveyInner">
<ul>
<li v-for="(surveyItem, index) in serveyList" :key="index">
<div class="surveyInnerTop">
<CommonInput
v-model="inputValue"
placeholder=""
:value="surveyItem.index"
/>
<CommonInput
v-model="inputValue"
placeholder=""
:value="surveyItem.question"
/>
<CommonButton
@click="deleteSurveyList(index)"
class="btn_ic_md btn_pri_line"
title="질문삭제"
>
<template #leading>
<Icon name="ic:baseline-close" />
</template>
</CommonButton>
</div>
<div class="surveyInnerCont">
<div>
<div class="surveySubTitle">
<strong>응답 유형</strong>
<CommonSelect
v-model="surveyItem.tollType"
:items="responseItems"
:isAll="true"
allText="적용안함"
@change="handleResponseType(surveyItem.tollType, index)"
size="md"
/>
</div>
</div>
<div>
<div class="surveySubTitle">
<strong>답변 항목 구성</strong>
<CommonButton
@click="createAnswerList(index, surveyItem.index)"
class="btn_ic_md btn_pri"
title="추가버튼"
>
<template #leading>
<Icon name="ic:baseline-add" />
</template>
</CommonButton>
</div>
<ul>
<li
v-for="(item, answerIndex) in surveyItem.answerList"
:key="answerIndex"
>
<CommonSelect
v-model="item.type"
:items="answerItems"
:isAll="true"
allText="적용안함"
@change="
handleAnswerType(
item.type,
answerIndex,
surveyItem.index
)
"
size="md"
/>
aa: {{ testvalue }}
<input
v-if="
surveyItem.tollType === '단일선택' &&
item.type === '고정형'
? true
: false
"
type="radio"
v-model="testvalue"
:options="radioOptions"
:name="'radio_' + surveyItem.index"
/>
<!-- <CommonRadio
v-if="
surveyItem.tollType === '단일선택' &&
item.type === '고정형'
? true
: false
"
v-model="testvalue"
:options="radioOptions"
@click="handleRadioClick(item.radio)"
class="md input_radio"
/> -->
<CommonCheckbox
v-if="
surveyItem.tollType === '다중선택' &&
item.type === '고정형'
? true
: false
"
v-model="item.check"
/>
<CommonInput v-model="item.answer" placeholder="" />
<CommonButton
@click="deleteAnswerList(answerIndex, surveyItem.index)"
class="btn_ic_md btn_pri_line"
title="답변삭제버튼"
>
<template #leading>
<Icon name="ic:baseline-close" />
</template>
</CommonButton>
</li>
</ul>
</div>
</div>
</li>
</ul>
</div>
</div>
'⛔️ Error' 카테고리의 다른 글
ORA-08002 : 시퀀스 SEQ.currval은 이 세션이 정의되지 않습니다. (0) | 2024.10.02 |
---|---|
react-testing-library 의 "not wrapped in act(...)" Error (0) | 2023.12.04 |
react-dom.development.js:16507 Uncaught Error: Rendered more hooks than during the previous render. (0) | 2023.07.20 |
CORS 에러 (0) | 2023.06.21 |
npm install, ENOENT: no such file or directory 에러 (0) | 2023.06.17 |
댓글