Страница должна обновляться при нажатии кнопки «Отмена» в окне подтверждения. - PullRequest
0 голосов
/ 07 января 2019
return confirm('Changing the protocol will reset the project Team members');
                }

Я вызываю два метода onclick, первый останавливается, чтобы нажать кнопку несколько раз, второй показывает окно подтверждения. как только пользователь нажимает кнопку отмены, пользователь не может сохранить его снова. Я ищу решение, чтобы дифференцировать эти два прохода по щелчку.

<apex:commandButton onclick=" this.onclick=function(){return false;}; return showProtocolEditWarning();" action="{!save}" value="Save" id="commandButtonSave"/>  

 function showProtocolEditWarning(){
            if(projectId && praProtocol){
                var newProject = document.querySelector('input[id$="inputFieldPraProject_lkid"]').value;
                var protocolIdElement = document.querySelector('select[id$="protocolIdList"]');
                var newProtocol = protocolIdElement.options[protocolIdElement.selectedIndex].value;
                if(praProject.substring(0,15) != newProject.substring(0,15) || praProtocol != newProtocol){
                    return confirm('Changing the protocol will reset the project Team members');
                    //window.location.reload() ;
                }
            }
            return true;
        }

1 Ответ

0 голосов
/ 07 января 2019

Вместо того, чтобы возвращать confirm(...), вы должны проверить, что пользователь нажал, и перезагрузить страницу, используя location.reload(), если пользователь нажал "Отмена":

function confirmMessage() {
  if(confirm('Your confirmation msg')) { //i.e. if the user pressed ok
    //handle this
  }
  else {  //i.e. user pressed cancel
    location.reload();
  }
}
...