When I get a value or set a value (from the server side, for example) for an input that is a boolean type it comes as "True" or "False" instead of true or false.
For example:
//"True"
var isDated = $('.someClass').val();
//will not pass because isDated is a string
if (isDated == true){
console.log("passed");
}
Why does this happend? Which is the best way to avoid this?
EDIT:
I've found a blog that has a solution to avoid this problem: http://www.peterbe.com/plog/data-and-attr-in-jquery
Below a prototype method called .toBoolean() to validate true/false when it comes as a string based on some responses from this post:
String.prototype.toBoolean = function ()
{
var dictionary = { "True": true, "False": false };
return dictionary[this];
};
Boolean.prototype.toBoolean = function () {
return this;
};
Number.prototype.toBoolean = function ()
{
if (this) {
return true;
}
return false;
};