diff --git a/packages/primevue/src/togglebutton/ToggleButton.vue b/packages/primevue/src/togglebutton/ToggleButton.vue index 78136ec38..ecf49694d 100755 --- a/packages/primevue/src/togglebutton/ToggleButton.vue +++ b/packages/primevue/src/togglebutton/ToggleButton.vue @@ -5,8 +5,9 @@ :class="cx('root')" :tabindex="tabindex" :disabled="disabled" - :aria-pressed="modelValue" + :aria-pressed="d_value" @click="onChange" + @blur="onBlur" v-bind="getPTOptions('root')" :aria-labelledby="ariaLabelledby" :data-p-checked="active" @@ -14,8 +15,8 @@ > - - + + {{ label }} @@ -32,7 +33,7 @@ export default { name: 'ToggleButton', extends: BaseToggleButton, inheritAttrs: false, - emits: ['update:modelValue', 'change'], + emits: ['change'], methods: { getPTOptions(key) { const _ptm = key === 'root' ? this.ptmi : this.ptm; @@ -46,20 +47,23 @@ export default { }, onChange(event) { if (!this.disabled && !this.readonly) { - this.$emit('update:modelValue', !this.modelValue); + this.updateValue(!this.d_value, event); this.$emit('change', event); } + }, + onBlur(event) { + this.formField.onBlur?.(event); } }, computed: { active() { - return this.modelValue === true; + return this.d_value === true; }, hasLabel() { return isNotEmpty(this.onLabel) && isNotEmpty(this.offLabel); }, label() { - return this.hasLabel ? (this.modelValue ? this.onLabel : this.offLabel) : ' '; + return this.hasLabel ? (this.d_value ? this.onLabel : this.offLabel) : ' '; } }, directives: { diff --git a/packages/primevue/src/togglebutton/style/ToggleButtonStyle.js b/packages/primevue/src/togglebutton/style/ToggleButtonStyle.js index fd9a04e1a..8ee5d7053 100644 --- a/packages/primevue/src/togglebutton/style/ToggleButtonStyle.js +++ b/packages/primevue/src/togglebutton/style/ToggleButtonStyle.js @@ -106,7 +106,7 @@ const classes = { 'p-togglebutton p-component', { 'p-togglebutton-checked': instance.active, - 'p-invalid': props.invalid + 'p-invalid': instance.$invalid } ], content: 'p-togglebutton-content', diff --git a/packages/primevue/src/toggleswitch/BaseToggleSwitch.vue b/packages/primevue/src/toggleswitch/BaseToggleSwitch.vue index 1d34fb03e..473c7e302 100644 --- a/packages/primevue/src/toggleswitch/BaseToggleSwitch.vue +++ b/packages/primevue/src/toggleswitch/BaseToggleSwitch.vue @@ -1,15 +1,11 @@