14

以下のステートメントを改善して、またはでval()あるかどうかを確認するより良い方法はありますか。そうである場合は、ブール値に変更されます。その理由は、一部の値が単語である可能性があるからです。'true''false'

var thisval = $(this).val();
if (thisval == "true"){
    ao[id] = true;
} else if (thisval == "false"){
    ao[id] = false;
} else {
    ao[id] = $(this).val();
}
4

8 に答える 8

9

JSON.parse()を試してください。

"true""false"は、実際には,のjson 表現です。これは、ajaxがjsonオブジェクトをサーバー側から文字列として解析する方法です。サーバー側でtrue、falseを返す場合=>ブラウザは文字列「true」または「false」(json表現)として受け取りますtruefalse

if ( $(this).val() == "true" ||  $(this).val() == "false") {
    ao[id] = JSON.parse($(this).val());
}else {
    ao[id] = $(this).val();
}

デモ

于 2013-11-11T13:42:25.407 に答える