詳しくはiviewのcheckboxの多選択枠の全選択時検査問題を解決します。
iviewフレームのcheckboxを使って多く枠を選ぶ時1つの検査問題に出会いました。
iviewが与えた例のコードは以下のhttps://www.iviewui.com/components/checkboxです。
しかし、フォームチェックをする時に問題があります。バナナ、リンゴ、スイカを選ぶとv-model='checkAllGroup'が結合されている検査方法がトリガされます。ただし、全て/全部選択されていない場合、この検査はトリガされません。
解決方法:全選択の@click.prevent.native=「handleCheckAll」方法を@on-change=「handleCheckAll」に変更します。
この問題は解決されます。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
iviewが与えた例のコードは以下のhttps://www.iviewui.com/components/checkboxです。
<template>
<div style="border-bottom: 1px solid #e9e9e9;padding-bottom:6px;margin-bottom:6px;">
<Checkbox
:indeterminate="indeterminate"
:value="checkAll"
**@click.prevent.native="handleCheckAll"**> </Checkbox>
</div>
<CheckboxGroup v-model="checkAllGroup" @on-change="checkAllGroupChange">
<Checkbox label=" "></Checkbox>
<Checkbox label=" "></Checkbox>
<Checkbox label=" "></Checkbox>
</CheckboxGroup>
</template>
<script>
export default {
data () {
return {
indeterminate: true,
checkAll: false,
checkAllGroup: [' ', ' ']
}
},
methods: {
handleCheckAll () {
if (this.indeterminate) {
this.checkAll = false;
} else {
this.checkAll = !this.checkAll;
}
this.indeterminate = false;
if (this.checkAll) {
this.checkAllGroup = [' ', ' ', ' '];
} else {
this.checkAllGroup = [];
}
},
checkAllGroupChange (data) {
if (data.length === 3) {
this.indeterminate = false;
this.checkAll = true;
} else if (data.length > 0) {
this.indeterminate = true;
this.checkAll = false;
} else {
this.indeterminate = false;
this.checkAll = false;
}
}
}
}
</script>
上記のコードの太字部分はclick方法です。しかし、フォームチェックをする時に問題があります。バナナ、リンゴ、スイカを選ぶとv-model='checkAllGroup'が結合されている検査方法がトリガされます。ただし、全て/全部選択されていない場合、この検査はトリガされません。
解決方法:全選択の@click.prevent.native=「handleCheckAll」方法を@on-change=「handleCheckAll」に変更します。
この問題は解決されます。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。