Bei der Entwicklung des Front-End-Geschäfts mithilfe des Vue-Frameworks stoßen wir häufig auf mehrstufige Verknüpfungs-Dropdown-Felder. Zu diesem Zeitpunkt verwenden wir das Auswahlelement, um es zu implementieren. In mehrstufigen Verknüpfungsszenarien müssen wir jedoch manchmal die Optionen im Mehrfachauswahlfeld löschen, wenn sich die Optionen des Dropdown-Felds ändern, damit der Benutzer die relevanten Optionen erneut auswählen kann. In diesem Artikel wird erläutert, wie Sie die Funktion zum Löschen der Optionen im Mehrfachauswahlfeld implementieren, wenn sich die Optionen des Dropdown-Felds in Vue ändern.
1. Bedarfsanalyse
In tatsächlichen Projekten stoßen wir häufig auf mehrstufige Verknüpfungsanforderungen, wie z. B. die Auswahl von Land, Provinz, Stadt und anderen Informationen Manchmal verwenden wir normalerweise das Select-Element, um dies zu erreichen. Wenn wir in diesem Szenario jedoch die Optionen des Dropdown-Felds der oberen Ebene ändern, ändern sich auch die Optionen des Dropdown-Felds der unteren Ebene, aber die Optionen im Mehrfachauswahlfeld werden nicht gelöscht führt dazu, dass die Optionen nicht mit den Optionen des Dropdown-Felds übereinstimmen. Daher müssen wir die Optionen im Mehrfachauswahlfeld löschen, wenn sich die Optionen des Dropdown-Felds ändern, damit der Benutzer die relevanten Optionen erneut auswählen kann.
2. Lösung
Bei der Umsetzung der Anforderungen können wir das Watch-Attribut von Vue verwenden, um Änderungen im Wert des Dropdown-Felds zu überwachen und wann Der Wert ändert sich. Deaktivieren Sie die Optionen im Kontrollkästchen. Die konkrete Implementierung ist wie folgt:
In der Vorlage können wir zunächst das Mehrfachauswahlfeld und das Dropdown-Feld definieren und diese an die entsprechenden Optionen und Werte binden:
<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>
<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>
Das obige ist der detaillierte Inhalt vonvue schaltet das Auswahl-Dropdown-Feld um und löscht das Mehrfachauswahlfeld. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!