我有一个b-form-radio-group单选按钮,如何验证它们,因为必须选中其中一个?
这是b模态内b-form-radio-group的div
<b-modal id="manageQuantity" title="Manage Quantity" @ok="updateQuantity">
<div class="radio-button">
<b-form-group
id="quantityOption"
label-cols-sm="3"
label="Option :"
label-for="input-horizontal"
>
<b-form-radio-group
id="quantityOption"
class="individual-button"
buttons
button-variant="outline-secondary"
v-model="form.quantityOption"
:options="quantityOptions"
></b-form-radio-group>
</b-form-group>
</div>
</b-modal>
当我单击“确定”按钮时,如果我未选择任何单选按钮,则b-modal应该会警告我。
答案 0 :(得分:1)
您需要添加state
属性。您还可以将b-form-invalid-feedback
b-form-valid-feedback
插槽用于消息:
<b-form-radio-group
id="quantityOption"
class="individual-button"
buttons
button-variant="outline-secondary"
v-model="form.quantityOption"
:options="quantityOptions"
:state="state"
>
<b-form-invalid-feedback :state="state">Please select one</b-form-invalid-feedback>
<b-form-valid-feedback :state="state">Thank you</b-form-valid-feedback>
</b-form-radio-group>
....
data(){
return{
form:{
quantityOption: null
}
}
}
...
computed: {
state() {
return Boolean(this.form.quantityOption)
}
}
...
您可以在文档中找到更多信息:https://bootstrap-vue.js.org/docs/components/form-radio/#contextual-state-with-feedback-example
答案 1 :(得分:0)
在您的updateQuantity
方法中,您可以检查quantityOption
是否已设置。
您也可以实现Andriy的答案,以获得更直观的表示,但是您仍然需要在事件中进行检查以确保它未设置。
<div>
<b-btn v-b-modal.modal>Open Modal</b-btn>
<b-modal id="modal" @ok="updateQuantity">
<b-form-radio-group
buttons
button-variant="outline-secondary"
v-model="form.quantityOption"
:options="quantityOptions"
></b-form-radio-group>
</b-modal>
</div>
<script>
data() {
return {
form: { quantityOption: null },
quantityOptions: [
{value: 1, text: '1' },
{value: 2, text: '2' },
{value: 3, text: '3' }
]
}
},
methods: {
updateQuantity(event) {
if(!this.form.quantityOption){
alert('Please select one of the options first')
event.preventDefault()
}
}
}
</script>