【问题标题】:v-model won't detect changes made by jQuery trigger eventv-model 不会检测到由 jQuery 触发事件所做的更改
【发布时间】:2018-08-21 23:42:12
【问题描述】:

对于 Vue.js,我使用的是 jQuery Tempus Dominus datepicker。

<input type="text"
       class="form-control datetimepicker-input"
       id="confirmedDueDate"
       data-target="#confirmedDueDate"
       @focus="openDatetimePicker($event)"  //to show the datetimepicker
       @blur="closeDateTimePicker($event)"  //to close it
       v-model="taskSettings.confirmedDueDate"
       />

我面临以下问题:v-model 不会检测到 datetimepicker 所做的更改。

我想我可以在关闭选择器时触发一个事件:

$('#confirmedDueDate').trigger('change');
//or
$('#confirmedDueDate').trigger('input');

但这不起作用。

是否有针对此类情况的已知解决方法?

【问题讨论】:

    标签: jquery vue.js vuejs2 jquery-events


    【解决方案1】:

    命令

    $('#confirmedDueDate').trigger('input');
    

    触发 Vue 无法识别的 jQuery.Event Object,因为它只知道原生 DOM 事件。

    您可以“手动”触发 Vue 将响应的事件:

    $('#confirmedDueDate')[0].dispatchEvent(new CustomEvent('input'));
    

    而且 Vue 会将其识别为普通的原生 input evnet。

    【讨论】:

    • 这个效率很高
    猜你喜欢
    • 2016-01-20
    • 2014-09-23
    • 1970-01-01
    • 2020-03-07
    • 2012-10-26
    • 2020-05-16
    • 2016-09-24
    • 2017-03-30
    • 2014-08-16
    相关资源
    最近更新 更多