views:

37

answers:

1

I want to have a confirm box when user tries to close the window.

window.onbeforeunload = function (evt) {
var message = 'Are you sure you want to leave, cause there are some unsaved changes?';
if (typeof evt == 'undefined') {
evt = window.event;

}
if (evt ) {
evt.returnValue = message;
}

        return message;

}

The thing is i want to check a variables value

    var sncro=1;

If its value is not equal to one then this confirmation box should be there..else no need to have a confirmation. I m not able to figure this..Its soo silly but i request anybody can have a look on the code. thnks.

A: 

I assume that on page load, you are setting up var sncro=1; and when some data changes, you adjust this value. Here is the quick check:

window.onbeforeunload = function (evt) {
  if (sncro != 1) {
   var message = 'Are you sure you want to leave, cause there are some unsaved changes?';
   if (typeof evt == 'undefined') {
      evt = window.event;
   }
   if (evt ) {
      evt.returnValue = message;
   }
   return message;
  }
}
Sohnee
@Sohnee: I would consider using '!=='. What you have should work, but the concept of truth and implicit type conversion in js can be quite confusing.
Mads Ravn
@Mads Ravn - I agree with !== especially when comparing to 0 - but I never go too far down "JSLint" territory when talking about other people's code as you just never know where they decide to do blah = "1"; if (blah !== 1)...
Sohnee