![](/img/trans.png)
[英]Titanium Appcelerator: Creating a TextField in a TableView
[英]TextField Valdiation in Appcelerator Titanium
我如何在 Titanium 或 JavaScript 中驗證我的 TextField 以將其限制為僅數字。
var txt_appt2 = Titanium.UI.createTextField({
top:2,
left:240,
width:75,
color:'#000',
backgroundColor:'#fff',
font: {fontSize: 12}
});
txt_appt2.addEventListener('change',function(e){
txt_appt2.value = txt_appt2.value.replace(/[^0-9]+/,"");
});
添加
keyboardType:Titanium.UI.KEYBOARD_NUMBER_PAD,
到文本字段。
請參閱http://www.lonhosford.com/lonblog/2011/04/06/titanium-limit-the-characters-in-a-textfield/中的示例
對於那些想知道為什么他們會遇到連續循環和錯誤的人;
問題不在於監聽 onChange 事件。 這是正確的事件,因為每次更改值時都會觸發它。 即復制和粘貼、按鍵等。
在 iOS 上,用戶可以復制和粘貼字符,即使您只限於十進制/數字鍵盤。
避免嘗試通過引用文本字段屬性本身來直接設置字段值。 相反,使用文本字段更改時返回的文本字段屬性。 這樣做不會導致 onChange 事件繼續觸發,從而導致永無止境的循環。
// XML
<TextField keyboardType="Ti.UI.KEYBOARD_TYPE_DECIMAL_PAD" value="0.00" onChange="Alloy.Globals.helper.decimalFormat" />
// 合金.js
Alloy.Globals.helper = {
decimalFormat: function(e) {
// Strip all characters from the input except digits
var input = e.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');
e.source.value = input;
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.