Dans le processus de développement d'une activité front-end à l'aide du framework Vue, nous rencontrons souvent des listes déroulantes de liaison à plusieurs niveaux. À ce stade, nous utiliserons l'élément select pour l'implémenter. Cependant, dans les scénarios de liaison à plusieurs niveaux, nous devons parfois effacer les options de la zone de sélection multiple lorsque les options de la liste déroulante changent, afin que l'utilisateur puisse resélectionner les options pertinentes. Cet article expliquera comment implémenter la fonction d'effacement des options dans la zone de sélection multiple lorsque les options de la liste déroulante changent dans Vue.
1. Analyse des exigences
Dans les projets réels, nous rencontrons souvent des exigences commerciales de liaison à plusieurs niveaux. Par exemple, nous devons sélectionner des informations telles que des pays, des provinces, des villes, etc. À l'heure actuelle, nous utilisons généralement l'élément select. pour y parvenir. Mais dans ce scénario, lorsque nous modifions les options de la liste déroulante de niveau supérieur, les options de la liste déroulante de niveau inférieur changeront également, mais les options de la zone de sélection multiple ne seront pas effacées, ce qui entraînera le message Les options ne correspondent pas aux options de la liste déroulante. Par conséquent, nous devons effacer les options dans la zone de sélection multiple lorsque les options de la liste déroulante changent, afin que l'utilisateur puisse resélectionner les options pertinentes.
2. Solution
Dans le processus de réalisation des exigences, nous pouvons choisir d'utiliser l'attribut watch de vue pour surveiller les changements dans la valeur de la liste déroulante et effacer les options dans la zone de sélection multiple lorsque la valeur change. . L'implémentation spécifique est la suivante :
Dans le modèle, nous pouvons d'abord définir la zone de sélection multiple et la zone déroulante, et les lier aux options et valeurs correspondantes :
<template> <div> <select v-model="country" @change="clearCity"> <option value="China">中国</option> <option value="US">美国</option> <option value="Japan">日本</option> </select> <select v-model="province" @change="clearCity"> <option v-for="p in provinces" :value="p">{{p}}</option> </select> <select multiple v-model="city"> <option v-for="c in cities" :value="c">{{c}}</option> </select> </div> </template>
Dans le script, nous devons définir get et définissez la méthode pour déclencher la logique d'effacement de la case de sélection multiple lorsque la valeur change :
<script> export default { data() { return { country: 'China', province: '', cities: [], provinces: { 'China': ['北京', '上海', '广州', '深圳'], 'US': ['纽约', '洛杉矶', '旧金山'], 'Japan': ['东京', '大阪', '福冈'] } } }, computed: { // 根据国家选择对应的省份 availableProvinces() { return this.provinces[this.country] || [] } }, watch: { // 监听国家变化,清空省份和城市 country(newVal, oldVal) { this.province = '' this.cities = [] }, // 监听省份变化,清空城市 province(newVal, oldVal) { this.cities = [] } }, methods: { // 清空城市选项 clearCity() { this.cities = [] } } } </script>
Ici, nous utilisons l'attribut calculé pour calculer les options de province disponibles, puis définissons les méthodes d'obtention et de définition pour le pays et la province, qui sont déclenché dans la méthode set Logique pour décocher les cases. Dans le même temps, nous surveillons également les changements dans les valeurs du pays et de la province dans l'attribut watch et effaçons les options de province et de ville lorsque les valeurs changent. Enfin, nous définissons la méthode clearCity dans la méthode pour effacer les options de ville.
3. Résumé
Cet article présente comment implémenter la fonction d'effacement des options dans la zone de sélection multiple lorsque les options de la liste déroulante changent de vue. Nous pouvons utiliser l'attribut watch de vue pour surveiller les changements de valeur et déclencher la logique consistant à effacer la case de sélection multiple lorsqu'elle change. Grâce à l'exemple ci-dessus, je pense que vous maîtrisez comment implémenter cette fonction dans vue. Dans les projets réels, nous pouvons ajuster et optimiser en fonction de besoins spécifiques pour obtenir une logique métier plus flexible et plus pratique.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!