Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
171
rated 0 times [  176] [ 5]  / answers: 1 / hits: 46679  / 13 Years ago, wed, april 27, 2011, 12:00:00

I have a boolean value set as a hidden variable in the form and I have the below javascript .



         $().ready(function() {

var flag = $('#popUpFlag').val();

alert(flag = +flag);

if(flag){
alert(flag is true);
}else{
alert(flag is false);
}
})


These are the outputs for the alert .



         flag =
flag is false


flag = false
flag is false


flag = true
flag is false


My concern is obviously the third output . When the flag is true , why is it printing flag is false , instead of flag is true . I tested it in IE8 and FF 4



Suggestions are welcome.


More From » javascript

 Answers
7

No, you don't have a boolean value in the hidden field. The value in the field is always a string.



When you use the string value as if it was a boolean value, you get unexpected results. A condition is false if the value is false, 0, or null, but the string false is neither, so it's evaluated as true.



If you want a boolean value, you have to parse the string. An easy way is to simply check if the string has a specific value:



var flag =  $('#popUpFlag').val() === 'true';

[#92541] Tuesday, April 26, 2011, 13 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
anabeldaliad

Total Points: 552
Total Questions: 107
Total Answers: 120

Location: Hungary
Member since Mon, Feb 21, 2022
2 Years ago
;