checkboxとradioの選択された値の取得

  1. <!DOCTYPE html>
  2. <html lang="ja">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>checkboxとradioの選択された値の取得</title>
  6. <script type="text/javascript" src="jquery-1.5.1.min.js"></script>
  7. <script type="text/javascript" src="knockout-2.1.0beta.js"></script>
  8. <script type="text/javascript">
  9.   $(document).ready(function () {
  10.     ko.applyBindings(new ViewModel());
  11.   });
  12.   function ViewModel() {
  13.     var self = this;
  14.     self.KoCheck = ko.observableArray();
  15.     self.KoRadio = ko.observable("");
  16.     valueCheckbox = ko.computed(function() {
  17.       msgCheckValue = "";
  18.       if (self.KoCheck().length < 1)
  19.       {
  20.         return "未チェック";
  21.       }
  22.       for (i=0; i<self.KoCheck().length; i++)
  23.       {
  24.         if (msgCheckValue != "")
  25.         {
  26.           msgCheckValue += "、";
  27.         }
  28.         msgCheckValue += self.KoCheck()[i];
  29.       }
  30.       return msgCheckValue;
  31.     }, self);
  32.     
  33.     valueRadio = ko.computed(function() {
  34.       if (self.KoRadio() == "")
  35.       {
  36.         return "未チェック";
  37.       }
  38.       return self.KoRadio();
  39.     }, self);
  40.   }
  41. </script>
  42. </head>
  43. <body>
  44. <h1>checkboxとradioの選択された値の取得</h1>
  45. <h2>checkbox</h2>
  46. <label><input type="checkbox" value="丸ごとしまうま" data-bind="checked: KoCheck" />丸ごとしまうま</label>
  47. <label><input type="checkbox" value="ねぎま" data-bind="checked: KoCheck" />ねぎま</label>
  48. <label><input type="checkbox" value="ひな皮" data-bind="checked: KoCheck" />ひな皮</label><br />
  49. <p>
  50. チェックされたのは「<span style="color:red;" data-bind="text: valueCheckbox"></span>」です。<br />
  51. <small>※observableArray()を使う。observable()の場合、true/falseのどちらかになる</small>
  52. </p>
  53. <h2>radioボタン</h2>
  54. <label><input type="radio" value="ナンコツ" data-bind="checked: KoRadio" />ナンコツ</label>
  55. <label><input type="radio" value="砂肝" data-bind="checked: KoRadio" />砂肝</label>
  56. <label><input type="radio" value="つくね" data-bind="checked: KoRadio" />つくね</label>
  57. <p>チェックされたのは「<span style="color:red;" data-bind="text: valueRadio"></span>」です。</p>
  58. <div style="font-size:10pt;text-align:right;margin-top:0.5em;">
  59. <a href="//tips.recatnap.info/" target="_top">PCスキルの小技・忘却防止メモ</a> -
  60. <a href="//tips.recatnap.info/wiki/" target="_top">PCスキルの小技・忘却防止メモのまとめ(wiki)</a>
  61. </div>
  62. <div style="font-size:10pt;text-align:center;margin-top:0.5em;padding:0.5em;border-top:1px solid #ccc;">
  63. Copyright &copy; 2009 by PCスキルの小技・忘却防止メモ. All rights reserved.
  64. </div>
  65. </body>
  66. </html>