開発環境
- Microsoft Windows 7 Home Premium (OS)
- Internet Explorer 9 (Webプラウザ)
- Microsoft Visual Web Developer 2010 Express Edition (IDE)
- Script言語:JavaScript
- JavaScript Library: jQuery
『初めてのJavaScript 第2版』(シェリー・パワーズ著、武舎広幸+武舎るみ訳、オライリー・ジャパン、2009年、ISBN978-4-84311-425-5)の8章(フォームと検証), 練習問題2を解いてみる。
8-2.
コード
<script type="text/javascript"> catchEvent(window, "load", setupEventsAndFocus); function catchEvent(eventObj, event, eventHandler) { if (eventObj.addEventListener) { eventObj.addEventListener( event, eventHandler, false); } else if (eventObj.attachEvent) { event = "on" + event; eventObj.attachEvent( event, eventHandler); } } function cancelEvent(event) { if (event.preventDefault) { event.preventDefault(); event.stopPropagation(); } else { event.returnValue = false; event.cancelBubble = true; } } function setupEventsAndFocus(event) { catchEvent( document.getElementById("name"), "blur", checkRequired); catchEvent( document.getElementById("zip"), "change", validateField); catchEvent( document.getElementById("address"), "change", validateAddress); catchEvent( document.getElementById("passwd"), "change", validatePasswd); catchEvent( document.getElementById("someForm"), "submit", validateForm); $('#name').focus(); } function checkRequired(event) { var theEvent = event ? event : window.event; var target = theEvent.target ? theEvent.target : theEvent.srcElement; var txtInput = target.value; if (txtInput == null || txtInput == "") { alert( "お名前をご記入ください"); } } function validateField(event) { var theEvent = event ? event : window.event; var target = theEvent.target ? theEvent.target : theEvent.srcElement; var rgEx = /^\d{3}[-]?\d{4}$/; var OK = rgEx.exec(target.value); if (!OK) { alert( "郵便番号の形式が" + "違っています"); } } function validateAddress(event) { var theEvent = event ? event : window.event; var target = theEvent.target ? theEvent.target : theEvent.srcElement; var rgEx = /^[^0-9]+$/; var OK = rgEx.exec(target.value); if (!OK) { alert( "数字は全角で" + "入力してください"); } } function validatePasswd(event) { var theEvent = event ? event : window.event; var target = theEvent.target ? theEvent.target : theEvent.srcElement; var rgEx = /^.{8,}$/; var OK = rgEx.exec(target.value); if (!OK) { alert( "パスワードは8文字以上に" + "設定してください"); } } function validateForm(event) { var theEvent = event ? event : window.event; var strResults = ""; var textInputs = document.getElementById("someForm") .getElementsByTagName("input"); for (var i = 0; i < textInputs.length; i++) { if (textInputs[i].type != "submit") { strResults += textInputs[i].value + "\n"; } } document.getElementById("textarea") .value = strResults; cancelEvent(theEvent); } </script> <form id="Form1" action=""> <p> お名前: <input type="text" name="text1" id="Text1" /> <br /> 郵便番号: <input type="text" name="text2" id="Text2" /> <br /> ご住所: <input type="text" name="text3" id="Text3" size="60" /> <br /> パスワード; <input type="password" name="text4" id="Password1" /> <br /> <input type="hidden" name="text5" value="秘密のテキスト" /> <textarea name="text4" id="textarea1" cols="50" rows="10"> テキストエリア </textarea> <br /> <br /> <input type="submit" value="送信" /> </p> </form>
合わせて読んでいる書籍。
- 14章でPHPとJavaScriptを組み合わせたWebアプリケーションが登場したので『初めてのPHP
& MySQL 第2版』(Micbele E. Davis、Jon A. Phillips 著、西沢 直木 訳、オライリー・ジャパン、2008年、ISBN978-4-87311-365-4)
- JavaScriptのライブラリーを活用できるようになるために『jQueryクックブック』(jQuery Community Experts 著、株式会社クイープ 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-468-2)
- JavaScript、APIを使って遊ぶために『Google Maps Hacks 第2版 ―地図検索サービスをもっと活用するテクニック』(Rich Gibson, Schuyler Erle 著、武舎 広幸、福地 太郎、武舎 るみ 訳、オライリー・ジャパン、2007年、ISBN978-4-87311-341-8)
- HTML5について学習するために『入門
HTML5』(Mark Pilgrim 著、矢倉 眞隆 監訳、水原 文 訳、オライリー・ジャパン、2011年、ISBN978-4-87311-482-8)
PHPの学習が止まったまま(というかほとんど進んでいない)だけど、そろそろ再開しようか検討中。
前の周では少しずつjQueryを使ってみたけど、今回はもっとjQueryを活用していく計画!
0 コメント:
コメントを投稿