Prototype.jsのよく使う機能を簡単に使えるよう使いやすくまとめみた。
で、今回作ってみたのがprototype.jsの一部の機能+αを簡単に使えるようにしたクラス。
Ajaxを少しつかったことがあって、もっと自分でいろいろやってみたいって方に使ってもらえればと思います。
次にhtmlのヘッダ部分に任意のパスでprototype.jsと保存したeasyproto.jsを読み込ませる指定を記述します。
Ajaxを少しつかったことがあって、もっと自分でいろいろやってみたいって方に使ってもらえればと思います。
入力内容のバリデート
バリデートでは、フォームに入力された内容を正規表現で可否を判定します。エレメントに対して効果をかける
- エレメントを隠す
- エレメントを表示
- エレメントを表示・非表示
- エレメントの中身を書き換える
- エレメントの前に値の挿入(Before)
- エレメントの後に値の挿入(After)
- エレメントの最初に値の挿入(Top)
- エレメントの最後に値の挿入(Bottom)
- ファイル読み込み
- クラス名を付与
- クラス名を削除
- 指定エレメントまでスクロール
- エレメントを削除
このボックスに効果をかけます。
使い方
下のjavascriptコードをeasyproto.js(任意)という別ファイル化して保存します。/* EasyProto JavaScript , version 0.1 * (c) 2008 Ryuichi Nonaka * * ProtoTab is freely distributable under the terms of an MIT-style license. * For details, see the AutoComp web site: http://d-remix.net/autocomp.html * *--------------------------------------------------------------------------*/ var EasyProto = { Hide:function(element){ Element.hide($(element)); }, Show:function(element){ Element.show($(element)); }, Remove:function(element){ Element.remove($(element)); }, Toggle:function(element){ Element.toggle($(element)); }, Scroll:function(element){ Element.scrollTo($(element)); }, InnerChange:function(element,Document){ $(element).innerHTML = Document; }, BCChange:function(Elements,Color){ $(Elements).style.backgroundColor = Color; }, LoadFile:function(elements,FileNames,Method) { new Ajax.Request(FileNames , { method: Method, onComplete: Data }); function Data(responseHttpObj){ var Box = responseHttpObj.responseText; $(elements).innerHTML = Box; } }, Insertion:function(element,Flag,Document){ if(Flag == "Before"){ new Insertion.Before(element, Document); } else if(Flag == "After"){ new Insertion.After(element, Document); } else if(Flag == "Top"){ new Insertion.Top(element, Document); } else if(Flag == "Bottom"){ new Insertion.Bottom(element, Document); } }, AddClass:function(element,Class){ Element.addClassName($(element), Class); }, RemoveClass:function(element,Class){ Element.removeClassName($(element), Class); }, ValidateMail:function(Form,Color1,Color2){ if ($(Form).value.match(/^[A-Za-z0-9]+[\.\w-]+@[\w\.-]+\.\w{2,}$/)) { EasyProto.BCChange(Form,Color1); } else { EasyProto.BCChange(Form,Color2); } }, ValidateInput:function(Form,Color1,Color2){ if (!$(Form).value == "") { EasyProto.BCChange(Form,Color1); } else { EasyProto.BCChange(Form,Color2); } }, ValidateUrl:function(Form,Color1,Color2){ if ($(Form).value.match(/(http|ftp):\/\/.+/)) { EasyProto.BCChange(Form,Color1); } else { EasyProto.BCChange(Form,Color2); } }, ValidateZip:function(Form,Color1,Color2){ if ($(Form).value.match(/^\d+\-\d+$/)) { EasyProto.BCChange(Form,Color1); } else { EasyProto.BCChange(Form,Color2); } }, ValidateTxt:function(Form,Text,Color1,Color2){ if ($(Form).value == Text) { EasyProto.BCChange(Form,Color1); } else { EasyProto.BCChange(Form,Color2); } }, ValidateNum:function(Form,Color1,Color2){ if ($(Form).value.match(/^[0-9]+$/)) { EasyProto.BCChange(Form,Color1); } else { EasyProto.BCChange(Form,Color2); } }, ValidateEngS:function(Form,Color1,Color2){ if ($(Form).value.match(/^[a-z]+$/)) { EasyProto.BCChange(Form,Color1); } else { EasyProto.BCChange(Form,Color2); } }, ValidateEngB:function(Form,Color1,Color2){ if ($(Form).value.match(/^[A-Z]+$/)) { EasyProto.BCChange(Form,Color1); } else { EasyProto.BCChange(Form,Color2); } }, ValidateEnNu:function(Form,Color1,Color2){ if ($(Form).value.match(/^[A-Za-z0-9]+$/)) { EasyProto.BCChange(Form,Color1); } else { EasyProto.BCChange(Form,Color2); } }, FormReset:function(Elements){ Form.reset(Elements); }, FormFocus:function(Elements){ Field.focus(Elements); } }
次にhtmlのヘッダ部分に任意のパスでprototype.jsと保存したeasyproto.jsを読み込ませる指定を記述します。
<script type="text/javascript" src="prototype.js"></script> <script type="text/javascript" src="easyproto.js"></script>あとは、各クラスをイベントハンドラに記述することで利用できます。
逆引きクラス
| 入力内容判定 | EasyProto.ValidateInput() |
|---|---|
| EasyProto.ValidateInput('ID','非一致背景色','一致背景色') | |
| <input onkeyup="EasyProto.ValidateInput(this,'#f1ffef','#ffefef')" type="text" /> | |
| メールアドレス判定 | EasyProto.ValidateMail() |
| EasyProto.ValidateMail('ID','非一致背景色','一致背景色') | |
| <input onkeyup="EasyProto.ValidateMail(this,'#f1ffef','#ffefef')" type="text" /> | |
| URL判定 | EasyProto.ValidateUrl() |
| EasyProto.ValidateUrl('ID','非一致背景色','一致背景色') | |
| <input onkeyup="EasyProto.ValidateUrl(this,'#f1ffef','#ffefef')" type="text" /> | |
| 郵便番号判定 | EasyProto.ValidateZip() |
| EasyProto.ValidateZip('ID','非一致背景色','一致背景色') | |
| <input onkeyup="EasyProto.ValidateZip(this,'#f1ffef','#ffefef')" type="text" /> | |
| 指定文字判定 | EasyProto.ValidateTxt() |
| EasyProto.ValidateTxt('ID','指定文字','非一致背景色','一致背景色') | |
| <input onkeyup="EasyProto.ValidateTxt(this,'test','#f1ffef','#ffefef')" type="text" /> | |
| 数字判定 | EasyProto.ValidateNum() |
| EasyProto.ValidateNum('ID','非一致背景色','一致背景色') | |
| <input onkeyup="EasyProto.ValidateNum(this,'#f1ffef','#ffefef')" type="text" /> | |
| 英小文字判定 | EasyProto.ValidateEngS() |
| EasyProto.ValidateEngS('ID','非一致背景色','一致背景色') | |
| <input onkeyup="EasyProto.ValidateEngS(this,'#f1ffef','#ffefef')" type="text" /> | |
| 英大文字判定 | EasyProto.ValidateEngB() |
| EasyProto.ValidateEngB('ID','非一致背景色','一致背景色') | |
| <input onkeyup="EasyProto.ValidateEngB(this,'#f1ffef','#ffefef')" type="text" /> | |
| 英数字判定 | EasyProto.ValidateEnNu() |
| EasyProto.ValidateEnNu('ID','非一致背景色','一致背景色') | |
| <input onkeyup="EasyProto.ValidateEnNu(this,'#f1ffef','#ffefef')" type="text" /> | |
| フォームリセット | EasyProto.FormReset() |
| EasyProto.FormReset('<form>タグのID') | |
| <a href="javascript:void(0)" onclick="EasyProto.FormReset('Forms')">フォームをリセット</a> | |
| フォームフォーカス | EasyProto.FormFocus() |
| EasyProto.FormFocus('<input>のID') | |
| <a href="javascript:void(0)" onclick="EasyProto.FormFocus('Form1')">フォームにフォーカス</a> | |
| エレメントを隠す | EasyProto.Hide() |
| EasyProto.Hide('エレメントのID') | |
| <a href="javascript:void(0)" onclick="EasyProto.Hide('Sample')">エレメントを隠す</a> | |
| エレメントを表示 | EasyProto.Show() |
| EasyProto.Show('エレメントのID') | |
| <a href="javascript:void(0)" onclick="EasyProto.Show('Sample')">エレメントを表示</a> | |
| エレメントを表示・非表示 | EasyProto.Toggle() |
| EasyProto.Toggle('エレメントのID') | |
| <a href="javascript:void(0)" onclick="EasyProto.Toggle('Sample')">エレメントを表示・非表示</a> | |
| エレメントの中身を書き換える | EasyProto.InnerChange() |
| EasyProto.InnerChange('エレメントのID','書き換えるテキスト') | |
| <a href="javascript:void(0)" onclick="EasyProto.InnerChange('Sample','書き換えるテキスト')">エレメントの中身を書き換える</a> | |
| エレメントの前に値を挿入 | EasyProto.Insertion() |
| EasyProto.Insertion('エレメントのID','Before','書き換えるテキスト') | |
| <a href="javascript:void(0)" onclick="EasyProto.Insertion('Sample','Before','書き換えるテキスト')">エレメントの前に値を挿入</a> | |
| エレメントの後に値を挿入 | EasyProto.Insertion() |
| EasyProto.Insertion('エレメントのID','After','書き換えるテキスト') | |
| <a href="javascript:void(0)" onclick="EasyProto.Insertion('Sample','After','書き換えるテキスト')">エレメントの後に値を挿入</a> | |
| エレメントの最初に値を挿入 | EasyProto.Insertion() |
| EasyProto.Insertion('エレメントのID','Top','書き換えるテキスト') | |
| <a href="javascript:void(0)" onclick="EasyProto.Insertion('Sample','Top','書き換えるテキスト')">エレメントの最初に値を挿入</a> | |
| エレメントの最後に値を挿入 | EasyProto.Insertion() |
| EasyProto.Insertion('エレメントのID','Bottom','書き換えるテキスト') | |
| <a href="javascript:void(0)" onclick="EasyProto.Insertion('Sample','Bottom','書き換えるテキスト')">エレメントの最後に値を挿入</a> | |
| ファイル読み込み | EasyProto.LoadFile() |
| EasyProto.LoadFile('エレメントのID','読み込みファイルのURL','読み込み方法(getかpost)') | |
| <a href="javascript:void(0)" onclick="EasyProto.LoadFile('Sample','test.txt','get')">ファイル読み込み</a> | |
| クラス名を付与 | EasyProto.AddClass() |
| EasyProto.AddClass('エレメントのID','付与するクラス名') | |
| <a href="javascript:void(0)" onclick="EasyProto.AddClass('Sample','test')">クラス名の付与</a> | |
| クラス名を削除 | EasyProto.RemoveClass() |
| EasyProto.RemoveClass('エレメントのID','削除するクラス名') | |
| <a href="javascript:void(0)" onclick="EasyProto.RemoveClass('Sample','test')">クラス名の削除</a> | |
| 指定エレメントまでスクロール | EasyProto.Scroll() |
| EasyProto.Scroll('エレメントのID') | |
| <a href="javascript:void(0)" onclick="EasyProto.Scroll('Sample')">指定エレメントまでスクロール</a> | |
| エレメントを削除 | EasyProto.Remove() |
| EasyProto.Remove('エレメントのID') | |
| <a href="javascript:void(0)" onclick="EasyProto.Remove('Sample')">エレメントを削除</a> |
カテゴリ
使えるAjax , 使えると楽しいJavascript関連記事
- noobSlideみたいなのをPrototype.jsとScriptaculousで作ってみた。
- Ajaxで使えるローディングアニメーションGIF ジェネレータメモ
- png画像を使って実現する透過を使ったデザイン&Ajax
- オンラインで付箋を貼れる「lino」:1日経過してすごいことになった。
- オンラインで付箋を貼れる「lino」
- Prototype.jsだけで実現するオートコンプリートライブラリ「AutoComp.js RC1」
- 新サイトの制作開始02
- 今さらだけどGoogle Map API日本語版マニュアルがでているそうです。
- 簡易Ajax RSS Readerβ2
- 簡易Ajax RSS Readerβ
- prototype.jsでテキストエリアに絵文字式入力
- Prototype.jsで要素の表示・非表示を実現
- Prototype.jsを使った簡単ファイル読み込み
トラックバック(0)
このブログ記事を参照しているブログ一覧: Prototype.jsのよく使う機能を簡単に使えるよう使いやすくまとめみた。
このブログ記事に対するトラックバックURL: http://newflow.heteml.jp/mt4/mt-tb.cgi/247









コメントする