更改钛中的 textField 值时未触发更改事件

Change event is not being fired when changing the textField value in titanium

我已经使用钛创建了一个用于移动网络的项目(经典)。 我创建了一个文本框。

var txtField = Ti.UI.createTextField({ id:"txtId", value:"txtValue"});

我添加了一个活动"Change"。

txtField.addEventListener('change', function(e){alert("change event fired");});

之后,当我尝试以编程方式更改该值时,例如

txtField.value = "Someothet text"

更改事件未触发。任何人都可以帮助我解决这个问题。

提前致谢, 斯瓦西

如果以编程方式更改值不会触发更改事件,您可以尝试在文本字段上手动触发它:

txtField.value = "Someothet text"
txtField.fireEvent('change');

您仍然需要在所有不同的地方调用它,但它是同一行代码。

据我所知,它只会在用户界面中修改时触发 "change" 事件。而且您还希望有一种在不触发 "change" 事件的情况下更改值的方法;-)

您写道您已经创建了一个包装器 class。然后您应该在该包装器 class 中创建一个 "setter" 函数(例如 "set" 或 "setValue")来设置该值。在 setter 中,您将设置值并触发更改事件。这样你只需要在一个地方维护更改逻辑。

HTH

/约翰