開発環境
- OS X Lion - Apple(OS)
- Safari (Webプラウザ)
- TextWrangler(Text Editor) (BBEditの無料、light版)
- Script言語:JavaScript
- JavaScript Library: jQuery
『初めてのJavaScript 第2版』(シェリー・パワーズ著(Shelley Powers著)、武舎 広幸+武舎 るみ訳、オライリー・ジャパン、2009年、ISBN978-4-84312-225-5) の8章(JavaScriptのフォームと検証)練習問第8-1を解いてみる。
その他参考書籍
- JavaScript 第6版
- JavaScriptリファレンス 第6版
- 『jQueryクックブック』(jQuery Community Experts 著、株式会社クイープ 訳、オライリー・ジャパン、2010年、ISBN978-4-87312-268-2)
8-1.
コード(TextWrangler)
<script> catch_event(window, "load", setup_events); function catch_event(event_obj, event, event_handler){ if(event_obj.addEventListener){ event_obj.addEventListener(event, event_handler, false); } else if (event_obj.attachEvent){ event_obj.attachEvent(event, event_handler); } } function cancel_event(event){ if(event.preventDefault){ event.preventDefault(); event.stopPropagation(); } else { event.returnValue = false; event.cancelBubble = true; } } function setup_events(event){ catch_event(document.getElementById("some_form"), "submit", check_colors); } function check_colors(event){ var event = event ? event : window.event; var color_opts = document.getElementById('some_form').getElementsByTagName('input'); var msg = "どれかひとつ色を選んでください"; for(var i = 0; i < color_opts.length; i++){ if(color_opts[i].checked){ var r = Math.random(); if(r > 0.75){ msg = "大吉"; } else if (r > 0.5){ msg = "小吉"; } else if (r > 0.25){ msg = "中吉"; } else { msg = "凶"; } msg = "今日のあなたの運勢は" + msg + "です"; break; } } $('#h0').text(msg); cancel_event(event); } </script> <form id = "some_form" > <p> <input type="radio" value="赤" name="radiogroup" />赤 <input type="radio" value="青" name="radiogroup" />青 <input type="radio" value="黄色" name="radiogroup" />黄色 <input type="radio" value="白" name="radiogroup" />白<br /> <input type="submit" value="送信" /> </p> </form> <h1 id="h0"></h1>
ちなみにPython3kの場合。
コード(TextWrangler)
sample.py
どれか一つの色(赤、青、黄色、白)を入力してください。 aka 入力を確認してください。 赤 今日のあなたの運勢は中吉です。 kamimuras-MacBook-Pro:javascript kamimura$ cat *.py #!/usr/bin/env python3.3 #-*- coding: utf-8 -*- colors = ['赤', '青', '黄色', '白'] print("どれか一つの色({0})を入力してください。".format("、".join(colors))) msg = "入力を確認してください。" while True: color = input() if color in colors:break print(msg) import random r = random.randint(1,4) cases = {1:'大吉', 2:"小吉", 3:'中吉', 4:'凶'} msg = '今日のあなたの運勢は{0}です。'.format(cases[r]) print(msg)
入出力結果(Terminal)
$ ./sample.py どれか一つの色(赤、青、黄色、白)を入力してください。 赤 今日のあなたの運勢は大吉です。 $ ./sample.py どれか一つの色(赤、青、黄色、白)を入力してください。 青 今日のあなたの運勢は凶です。 $ ./sample.py どれか一つの色(赤、青、黄色、白)を入力してください。 黄色 今日のあなたの運勢は中吉です。 $ ./sample.py どれか一つの色(赤、青、黄色、白)を入力してください。 siro 入力を確認してください。 白 今日のあなたの運勢は凶です。 $
0 コメント:
コメントを投稿