要素のvalue
はinput:checkbox
任意の文字列にすることができるため、JSONオブジェクトは完全に有効です。"
適切にエンコードされたJSONオブジェクト(文字列を引用するためではなく'
)であり、HTMLで正しくエスケープされていることを確認する必要があります。
提供した例は無効なJSONです。
<input type="checkbox" value="{'id': 100, 'postcode': 'WA8 6QF'}" />
代わりに、次のものが必要です。
<input type="checkbox" value="{"id":100,"postcode":"WA8 6QF"}" />
ほとんどの人がこの種の使用を思いとどまらせるのは、この種のエンコーディングの問題が原因です。それ自体は何も悪いことではありませんが、見過ごされがちな間違いを犯すのは非常に簡単です。
とはいえ、単にデータを要素に関連付けたい場合は、jQueryのdata
メソッドの方がはるかに使いやすく、エンコードについて心配する必要はありません。
さらに、サーバーから情報を渡す場合。jQueryのメソッドは、すべての属性data
から情報を引き出します。[data-*]
<input id="example" type="checkbox" data-id="100" data-postcode="WA8 6QF" value="...some value..." />
<script>//ideally in an external .js file rather than inline
var exampleData = $('#example').data();
</script>
exampleData
になります:
{
id: 100, //will even be nicely cast to a Number
postcode: 'WA8 6QF'
}