Heim >Web-Frontend >js-Tutorial >Das Datepicker-Plugin überwacht das Eingabefeld

Das Datepicker-Plugin überwacht das Eingabefeld

php中世界最好的语言
php中世界最好的语言Original
2018-03-23 13:25:391943Durchsuche

Dieses Mal bringe ich Ihnen das Eingabefeld für die Datumsauswahl-Plugin-Überwachung. Was sind die Vorsichtsmaßnahmen für das Eingabefeld für die Datumsauswahl-Plugin-Überwachung?

1. Hintergrund

Im Vue-Projekt wird ein Datepicker-Plugin eines Drittanbieters verwendet. Nach der Auswahl eines Datums kann Vue die Änderung der Datepicker-Eingabe nicht erkennen Box

 <label class="fl">日期:</label>
 <p class="input-wrapper fr">
  <input class="daterangepicker" ref="datepicker" v-model="dateRange"/>
  <a href="javascript:;" rel="external nofollow" ></a>
 </p>
export default {
  data() {
    return {
      dateRange: ''
    }
  },
  watch: {
    dateRange(newVal, oldVal) {
      console.log(newVal) // 选择日期后无法监听dateRange的改变
    }
  }
}

2. Analyse

Bei der Suche nach Informationen wurde festgestellt, dass Vue Datenänderungen, die durch Plug-Ins von Drittanbietern verursacht werden, tatsächlich nicht überwachen kann. Daher funktioniert die obige Methode nicht. Vue stellt uns jedoch eine Methode zur Verfügung, mit der alle Daten in Daten umgewandelt werden können, die von Vue überwacht werden können: vm.$set.

3. Lösung

Nehmen Sie den Datepicker, den ich als Beispiel verwende (jquery-daterangepicker)

data() {
    return {
      date: '',
      beginDate: '',
      endDate: ''
    }
  },
mounted () {
  $('.daterangepicker').dateRangePicker({
    autoClose: true,
    format: 'YYYY-MM-DD'
  }).bind('datepicker-change', this.setDate) //插件自带方法,选择日期后触发回调
 },
methods: {
  setDate() {
    let datepicker = this.$refs.datepicker
    //这一步是关键,具体说明可以参见vue api手册
    this.$set(this.date, 'beginDate', datepicker.value)
    this.$set(this.date, 'endDate', datepicker.value)
    this.beginDate = this.date.beginDate.slice(0, 11)
    this.endDate = this.date.endDate.slice(-10)
  }  
 },
  watch: {
  // 这里就可以监听数据变化啦,可以愉快的选择日期了!
   beginDate(newVal, oldVal) {
     this.$emit( 'beginDateChange', newVal )
   },
   endDate(newVal, oldVal) {
     this.$emit( 'endDateChange', newVal )
   }
  }

Glauben Sie Nachdem Sie den Fall in diesem Artikel gelesen haben, beherrschen Sie die Methode. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

JS-Methode zum Erhalten der Top-N-Farbwerte eines Bildes

Detaillierte Erläuterung von Grafiken und Text mit der Render-Methode

Das obige ist der detaillierte Inhalt vonDas Datepicker-Plugin überwacht das Eingabefeld. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn