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

时间:2015-07-15 06:10:57

标签: titanium titanium-mobile appcelerator appcelerator-mobile

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

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

我添加了一个“更改”事件。

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

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

txtField.value = "Someothet text"

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

先谢谢, Swathi。

2 个答案:

答案 0 :(得分:0)

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

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

您仍然需要在所有不同的地方拨打电话,但它的代码行相同。

答案 1 :(得分:0)

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

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

HTH

/约翰