angular - 如何在 keyPress 事件上更改 ionic alertController 中的输入值
问题描述
我有一个警报框来输入一个数字。如何限制用户输入负值 (-) 或者如果输入 -2,如何从数字中删除 -?
async updateBalance(): Promise<void> {
const alert = await this.alertController.create({
header: 'Update Balance!',
inputs: [
{
name: 'addAmount',
type: 'number',
id:'inputAmount',
placeholder: 'Enter Amount'
}
],
buttons: [
{
text: 'Add',
cssClass: 'secondary',
handler: (data) => {
this.calculateBalance(data, true);
}
}
]
});
alert.present();
alert.addEventListener('keypress', this.checkNegativeInput);
}
checkNegativeInput(e) {
if(e.charCode !== 45) {
document.getElementById('inputAmount')
}
}
此代码正在检测事件,但我无法更改输入字段的值。
解决方案
async createAlert() {
var alert = await this.alertController.create({
header: 'Update Balance!',
inputs: [
{
name: 'addAmount',
type: 'number',
id: 'inputAmount',
placeholder: 'Enter Amount'
}
],
buttons: [
{
text: 'Add',
cssClass: 'secondary',
handler: (data) =>
alert.inputs=[
{
name: 'addAmount',
type: 'number',
id: 'inputAmount',
placeholder: 'Enter Amount',
value: this.validateNumber(data.addAmount)
}
]
return false;
}
}
]
});
alert.present();
}
这有效,但由于某种原因它只显示一次。第二次单击添加按钮时,输入数组不会更改。删除,return false;
以便警报将关闭。我建议这样做:
async createAlert() {
var alert = await this.alertController.create({
header: 'Update Balance!',
inputs: [
{
name: 'addAmount',
type: 'number',
id: 'inputAmount',
placeholder: 'Enter Amount'
}
],
buttons: [
{
text: 'Add',
cssClass: 'secondary',
handler: (data) =>
alert.message="You can't enter negative numbers";
return false;
}
}
]
});
alert.present();
}
推荐阅读
- css - 博客上的赫斯提亚页脚
- python - 使用 pandas 进行高级计算(如果下一个单元格更大,则记下值,合并)
- excel - 在 inputBox 中使用数组
- angular - 离子构建失败:失败:构建失败并出现异常
- sql - 如何使用递归查询进行两种方式
- python - RuntimeError:无法在需要 grad 的张量上调用 numpy()
- javascript - 从带有javascript的android Webview,我可以将文本保存为Android资产文件夹中的文件吗?
- sql - HIVE 查询中的 MERGE 等价物
- java - 是否有任何 Maven 插件可用于从 Jhipster 中删除生成类的 getter/setter 并添加 lombok
- google-bigquery - BigQuery - 从云端硬盘创建表格时,Google 表格文件格式不再可用