我可以将表示布尔值的字符串(例如,'true','false')转换为JavaScript中的内部类型吗?
我有一个隐藏的HTML格式,根据用户在列表中的选择进行更新.此表单包含一些表示布尔值的字段,并使用内部布尔值进行动态填充.但是,一旦将此值放入隐藏的输入字段,它就会变成一个字符串.
我可以找到确定字段的布尔值的唯一方法,一旦将其转换为字符串,就要依赖于字符串表示的字面值.
var myValue = document.myForm.IS_TRUE.value;
var isTrueSet = myValue == 'true';
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来实现这一目标?
我有一个来自PHP端的结果,json_encode并将所有值作为字符串发送(而不是它的原始类型).来的字符串quote_tax是a 1|0,当然这是true|false例如:
{
"country_id": "3",
"country_name": "Italy",
"contract_tax": "1",
"quote_tax": "0",
"contract_inflation": "0",
"quote_inflation": "0"
}
Run Code Online (Sandbox Code Playgroud)
当我想基于这样的值执行某些操作时,因为它们以字符串形式出现,我需要做这样的事情:
data.quote_tax == '1'
? $('#contract_tax').val(1).attr('checked', 'checked')
: $('#contract_tax').val(0).removeAttr('checked');
Run Code Online (Sandbox Code Playgroud)
我确实知道.parseInt()将它们转换为整数,但我相信那时我需要进行相同的比较但是这种情况比较INT:
data.quote_tax == 1
? $('#contract_tax').val(1).attr('checked', 'checked')
: $('#contract_tax').val(0).removeAttr('checked');
Run Code Online (Sandbox Code Playgroud)
我试过这种方式:
Boolean(data.quote_tax) == true
? $('#contract_tax').val(1).attr('checked', 'checked')
: $('#contract_tax').val(0).removeAttr('checked');
Run Code Online (Sandbox Code Playgroud)
它不起作用,因为Boolean(data.quote_tax)总是评价true即使data.quote_tax = '0'.
我已经检查了这些帖子,但我找不到合适的解决方案:
任何想法在这里有什么问题或如何做到这一点?