formの入力項目のチェック
- <!DOCTYPE html>
- <html lang="ja">
- <head>
- <meta charset="UTF-8">
- <title>formの入力項目のチェック</title>
- <script type="text/javascript" src="jquery-1.5.1.min.js"></script>
- <script type="text/javascript" src="knockout-2.1.0beta.js"></script>
- <style type="text/css">
- </style>
- <script type="text/javascript">
- function viewModel() {
- var self = this;
-
- // 必須項目
- self.need = ko.observable({
- a01: ko.observable(""),
- a02: ko.observable(""),
- a03: ko.observable(""),
- a04: ko.observable("")
- });
-
- // エラー
- self.mess = ko.observable({
- a01: ko.observable(""),
- a02: ko.observable(""),
- a03: ko.observable(""),
- a04: ko.observable("")
- });
-
- // 入力項目の監視
- self.sendBtn = ko.computed( function()
- {
- // データがセットされる前なので放置でOK
- if (self.need() == undefined) {
- return false;
- }
-
- // sendBtnのカウント
- var cntSendBtn = 0;
-
- // 監視
- for (var key in self.need()) {
- if (self.need()[key]() == "") {
- self.mess()[key](key + "は、必須項目です");
- cntSendBtn++;
- }
- else {
- self.mess()[key]("");
- }
- }
-
- if (0 < cntSendBtn) {
- return false;
- }
- else
- {
- return true;
- }
- }, this);
-
- }
- $(document).ready(function () {
- ko.applyBindings(new viewModel());
- });
- </script>
- </head>
- <body>
- <h1>formの入力項目のチェック</h1>
- <p>すべての項目が何か入力されていたら、ボタンの押下が可能になる。</p>
- <ul>
- <li>a01:<input type="text" data-bind="value: need().a01, valueUpdate: 'afterkeydown'" /><span data-bind="text: mess().a01"></span></li>
- <li>a02:<input type="text" data-bind="value: need().a02, valueUpdate: 'afterkeydown'" /><span data-bind="text: mess().a02"></span></li>
- <li>a03:<input type="text" data-bind="value: need().a03, valueUpdate: 'afterkeydown'" /><span data-bind="text: mess().a03"></span></li>
- <li>a04:<input type="text" data-bind="value: need().a04, valueUpdate: 'afterkeydown'" /><span data-bind="text: mess().a04"></span></li>
- </ul>
- <input type="submit" data-bind="enable: sendBtn" />
- <div style="font-size:10pt;text-align:right;margin-top:0.5em;">
- <a href="//tips.recatnap.info/" target="_top">PCスキルの小技・忘却防止メモ</a> -
- <a href="//tips.recatnap.info/wiki/" target="_top">PCスキルの小技・忘却防止メモのまとめ(wiki)</a>
- </div>
- <div style="font-size:10pt;text-align:center;margin-top:0.5em;padding:0.5em;border-top:1px solid #ccc;">
- Copyright © 2009 by PCスキルの小技・忘却防止メモ. All rights reserved.
- </div>
- </body>
- </html>