js для создания подтверждающих сообщений. Я создаю веб-приложение, в котором пользователь может изменить 2 границы графика (используя кнопку обновления). Когда пользователь нажимает кнопку обновления, появляется подтверждающее сообщение, и пользователю предлагается подтвердить это изменение.
Проблема в том, что когда я нажимаю «ОК» или «Отмена», это не имеет значения и не меняет флаг, и изменение границ происходит в любом случае (поскольку значение инициализации флага равно true). Из сообщений консоли .log, я узнал, что приложение не ждет ответа пользователя и продолжает выполнять другие строки кода... Я попытался поместить весь свой код в функцию оповещения (e), которую я отправил, и все равно это не работает не работает для меня. Это мой код:
Alarm.prototype.updateAlarm=function(_limits){
var n=null;
var str="";
var changed_flag=false;
//create confirm dialog:
var engLimitMsg_1=" Upper Limit:";
var engLimitMsg_2=" Lower Limit:";
var hebLimitMsg_1=" גבול עליון:";
var hebLimitMsg_2=" גבול תחתון:";
var user_confirm=true;
var confirmMSG="";
if(_limits.length>=2){
if(this.language_mode==HEB_MODE){
confirmMSG+=ENG_CONFIRM_MSG;
if(IsNumeric(parseInt(_limits[0]))){
confirmMSG+=engLimitMsg_1+_limits[0];
}
if(IsNumeric(parseInt(_limits[1]))){
confirmMSG+=engLimitMsg_2+_limits[1];
}
}
else{
confirmMSG+=ENG_CONFIRM_MSG;
if(IsNumeric(parseInt(_limits[0]))){
confirmMSG+=engLimitMsg_1+_limits[0];
}
if(IsNumeric(parseInt(_limits[1]))){
confirmMSG+=engLimitMsg_2+_limits[1];
}
}
alertify.confirm(confirmMSG, function (e) {
if (e) {
// user clicked "ok"
user_confirm=true;
console.log("user clicked ok");
} else {
// user clicked "cancel"
user_confirm=false;
console.log("user clicked cancel");
}
});
//user has confirm the change!
if(user_confirm){
for (var i=0;i<_limits.length;i++){
if(IsNumeric(parseInt(_limits[i]))){
n=this.msgs[i].indexOf(this.limits[i].toString());
this.limits[i]=_limits[i];
this.msgs[i]=this.msgs[i].slice(0,n)+this.limits[i];
changed_flag=true;
}
}
}
// clean past alerts in case of change limits.
if(changed_flag)
this.cleanPastAlerts();
if(DEBUG_MODE)
console.log("alarms update: upperLimit:"+this.limits[0]+" lowerLimit:"+this.limits[1]);
}
else{
console.log("Error occurred!, array length is less than 2");
}
};
Примечание. Это ошибка, которую я иногда получаю:
Uncaught TypeError: Cannot read property 'removeEventListener' of undefined