2017-07-04 4 views
0

変数がブール値であるかどうかJSでテストする必要があります。 TRUE、FALSE、TRUE、FALSEの4つの値があります。 次のコードを使用していますが、「値」が他の文字列であっても、他のコードには決して行きません。 javascriptまたはjqueryでブール値をテストするにはどうすればよいですか?

let value = "true"; // could be true, false, "true", "false" or some other text string 
 
var columnName = ""; 
 
if (typeof value === "boolean") { 
 
    // $("input[value='" + value + "']").prop("checked", true); 
 
    console.log("Yes"); 
 
} else { 
 
    // $("input[name=" + columnName + "]").val(value); 
 
    console.log("No"); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
は、今では行かない理由は、それが文字列として格納されている:

+0

これがどのように機能すると思われるかは不明です。壊れたコードは、予想される動作の適切な説明の良い代替物ではありません。関連するHTMLを提供すると、[mcve] – charlietfl

+4

のようにも役立ちますブール値( "false")== true。本当の話... – IonicBurger

答えて

0

let value = "true";// could be true, false, "true", "false" or some other text string 
 
if ($.type(new Boolean(value)) === "boolean") { 
 
    $("input[value='" + value + "']").prop("checked", true); 
 
} else { 
 
    $("input[name=" + columnName + "]").val(value); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

は、あなただけの typeofキーワードを必要としています。 typeofまたはそれがどんな方法であれ、それはであり、 booleanではないと報告します。ブール変数を表すには、引用符を "で使用しないでください。

if (typeof value === "boolean" || value.toLowerCase() === "true" || value.toLowerCase() === "false") 

これは、それはあなたのために働くようになります:あなたが必要なものを達成するために

は、次のような条件を必要としています。

+0

私はopが望むものは、 'typeof value ==="となる可能性が高いと思います。 "boolean" ||値=== "true" ||値=== "false" ' –

+0

@UlysseBNそれから私はそれを更新します...秒をください。 –

+0

@UlysseBN今すぐ確認するか? –

関連する問題