我希望用户可以选择更改密码。所以首先他有第一个警报,在那里他有一个用于他的旧pw的输入,然后重复一次。然后应立即发出新警报,他可以输入两次新密码。但是永远不会调用此警报。我想知道错误是否出在if语句中,但到目前为止,我认为我已经正确完成了所有操作。
public password1 = '';
public password2 = '';
constructor(public alertController: AlertController) {}
async changePw() {
const alert = await this.alertController.create({
header: 'Change your Password?',
message: 'Type in your old password?',
inputs: [
{
name: 'password1',
placeholder: 'Old password',
type: 'password'
},
{
name: 'password2',
placeholder: 'Repeat old password',
type: 'password'
}
],
buttons: [
{
text: 'Cancel',
role: 'cancel',
handler: data => {
console.log('Cancel clicked');
}
},
{
text: 'Submit',
handler: async data => {
if (this.password1 === this.password2 && this.password2 !== '') {
const alert2 = await this.alertController.create({
header: 'Change your Password?',
message: 'Type in your old password?',
inputs: [
{
name: 'password3',
placeholder: 'New password',
type: 'password'
},
{
name: 'password4',
placeholder: 'Repeat new password',
type: 'password'
}
]
});
await alert2.present();
} else {
// invalid pw
return false;
}
}
}
]
});
await alert.present();
}
答案 0 :(得分:0)
我不确定这是您的完整代码还是只是在寻找逻辑处理。
但是我认为主要的问题是您不使用从警报控制器获取的数据。因此,请检查“提交”按钮处理程序上数据的使用情况。在此示例中,使用data.password1作为输入字段的名称,即可测试输入。
因此在您的代码中,password2 !== ""
始终为假,因为您没有设置它。
但是,您仍然必须将旧密码纳入此功能。
const alert1 = await this.aAlertController.create({
header: 'Change your Password?',
message: 'Type in your old password?',
inputs: [
{
name: 'password1',
placeholder: 'Old password',
type: 'password'
},
{
name: 'password2',
placeholder: 'Repeat old password',
type: 'password'
}
],
buttons: [
{
text: 'Cancel',
role: 'cancel',
handler: data => {
console.log('Cancel clicked');
}
},
{
text: 'Submit',
handler: data => {
if (data.password1 === data.password2 && data.password2 !== '') {
const alert2 = this.aAlertController.create({
header: 'Change your Password?',
message: 'Type in your old password?',
inputs: [
{
name: 'password3',
placeholder: 'New password',
type: 'password'
},
{
name: 'password4',
placeholder: 'Repeat new password',
type: 'password'
}
]
});
alert2.present();
} else {
// invalid pw
return false;
}
}
}
]
});
await alert1.present();
}
希望这会有所帮助。