gpt4 book ai didi

javascript - 当我在呈现 View 后设置输入类型的值时,为什么不触发输入类型的更改事件?

转载 作者:行者123 更新时间:2023-11-30 19:38:44 25 4
gpt4 key购买 nike

在主干 View 中,我在其事件哈希中添加了输入类型的更改事件,该事件将触发函数并为 View 中的某些元素设置值。现在在 View 渲染中,我使用下划线延迟方法将值设置为输入类型,以便在将 View 附加到 DOM 后设置值。这确实在 View 上设置了输入类型的值,但它不会触发它的更改事件,它应该为 View 内的其他字段设置值。

感谢任何帮助!

SomeView = Backbone.View.extend({
template: 'example.html',
events: {
"change #InputElementId": "UpdateFields"
},
renderTemplate: function () {
var view = this,
model = view.options.selectedModel;

podiumApp.fetchTemplate(view.template, function (tmpl) {
view.$el.html(tmpl(model.toJSON()));
});
},
render: function () {
var view = this,
view.renderTemplate();
_.defer(view.loadInputValue); `enter code here`

return view;
},
loadInputValue: function () {

$('#InputElementId').val(model.get('InputRangeValue'));
},
UpdateFields: function(){`enter code here`
// Some logic`enter code here`
console.log('Changed event fired');
});

最佳答案

以编程方式设置值不会触发 change 事件,您必须自己触发它

this.$('#InputElementId').val(model.get('InputRangeValue')).trigger('change');


  SomeView = Backbone.View.extend({
template: 'example.html',
events: {
'change #InputElementId': 'updateFields'
},
initialize: function() {
this.model = this.options.selectedModel;
},
renderTemplate: function() {
podiumApp.fetchTemplate(this.template, function(tmpl) {
this.$el.html(tmpl(this.model.toJSON()));
}.bind(this));
},
render: function() {
this.renderTemplate();
_.defer(this.loadInputValue.bind(this));
return this;
},
loadInputValue: function() {
var value = this.model.get('InputRangeValue');
this.$('#InputElementId').val(value).trigger('change');
},
UpdateFields: function() {
// Some logic
console.log('Changed event fired');
});

关于javascript - 当我在呈现 View 后设置输入类型的值时,为什么不触发输入类型的更改事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55646591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com