私は助けが必要です 私はEJSのjavasriptテンプレートを使ってコードスニペットを書いています。サーバーから返されたデータに応じてラジオボタンを2つ選択します。サーバは(my_dataという名前の)JSONを返し、ここに私のコードEJSのテキストをエコーしてラジオボタンを確認する方法
<input type="radio" name="is_public" value=1 <% if(my_data.is_public){ %> <%='checked' %> <% } %> />Public
<input type="radio" name="is_public" value=0 <% if(!my_data.is_public){ %> <%='checked' %> <% } %> />Private
である。しかし、それは仕事をdoesnt言ってみましょう! publicは常にチェックされますが、my_data.is_public = 0となります。
いずれかが役に立ちますか? EJS使用されることはありません
<input type="radio" name="is_public" value=1 <% if(my_data.is_public){ echo 'checked' } %> />Public
は、私はそれを解決した。 Javascriptは1を真、0を偽と認識していないようです。 if(my_data.is_public == 1)if(my_data.is_public)if(my_data.is_public)if(my_data.is_public == 0)if(if my_data.is_public)の代わりに、それは動作します。D とにかくあなたの助言に感謝します。 <%= %>を削除したときに私のコードがよりきれいになりました:D –
助けてくれてありがとうございました! Javascript自体がこれを行います - このjsfiddle:http://jsfiddle.net/CdPbp/を参照してください。これはEJS固有の可能性があります。とにかく、あなたが見つけたものはうまくいくはずです。 –
@LeoLerdorf、これはほとんどすべての言語で動作します。実際の "ブール値"のfalseは、実際には0、null、nil、{}、[]、または空の(JSの)任意のものです。これを試してください: 'console.log(10 * false);'と 'console.log(10 * true);'あなたはそれを理解するでしょう;) –