テキストフィールドや、ラジオボタンなど、フォーム項目の内容が変更された時に処理を行うための、jQueryによるイベントのまとめです。
サンプルはこちら
フォームは次のように、テキストフィールド、テキストエリア、ラジオボタン、チェックボックス、セレクトボックスを作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
<form> <!-- テキストフィールド --> <input type="text" id="text" name="text" value="" /> <hr /> <!-- テキストエリア --> <textarea id="textarea" name="textarea"></textarea> <hr /> <!-- ラジオボタン --> <label for="radio-01"><input type="radio" id="radio-01" name="radio" value="1" />ラジオ1</label> <label for="radio-02"><input type="radio" id="radio-02" name="radio" value="2" />ラジオ2</label> <label for="radio-03"><input type="radio" id="radio-03" name="radio" value="3" />ラジオ3</label> <hr /> <!-- チェックボックス --> <label for="checkbox-01"><input type="checkbox" id="checkbox-01" name="checkbox" value="1" />チェックボックス1</label> <label for="checkbox-02"><input type="checkbox" id="checkbox-02" name="checkbox" value="2" />チェックボックス2</label> <label for="checkbox-03"><input type="checkbox" id="checkbox-03" name="checkbox" value="3" />チェックボックス3</label> <hr /> <!-- セレクトボックス --> <select name="test[select]" id="select"> <option value="1">セレクト1</option> <option value="2">セレクト2</option> <option value="3">セレクト3</option> </select> <hr /> </form> |
上記のフォーム項目ごとに、内容が変更された時にイベントを取得して、別のDIVタグ内に変更内容を表示するようにしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
$(function() { //テキストフィールド $("input#text").keyup(function() { $("div#value-text span").text($(this).val()); }); //テキストエリア $("textarea#textarea").keyup(function() { $("div#value-textarea span").text($(this).val()); }); //ラジオボタン $("input[name='radio']:radio").change(function() { $("div#value-radio span").text($(this).val()); }); //チェックボックス $("input[name='checkbox']:checkbox").click(function() { var array = new Array(); $("input[name='checkbox']:checked").map(function() { array.push($(this).val()); }); $("div#value-checkbox span").text(array.toString()); }); //セレクトボックス $("select#select").change(function() { $("div#value-select span").text($(this).val()); }); }); |
テキストエリア、テキストボックスは、キーボードが押された時に、ラジオボタン、セレクボトックスは選択が変更された時に、チェックボックスはいずれかのチェックボックスが押された時にそれぞれイベントを取得しています。
変更内容の確認のための各DIVは、次のように記述しています。
|
<div id="value-text">テキストフィールドの値:<span></span></div> <div id="value-textarea">テキストエリアの値:<span></span></div> <div id="value-radio">ラジオボタンの値:<span></span></div> <div id="value-checkbox">チェックボックスの値:<span></span></div> <div id="value-select">セレクトボックスの値:<span></span></div> |
jQueryで要素の順番をシャッフルするスクリプトのメモです。
|
function shuffleContent(container) { var content = container.find("> *"); var total = content.size(); content.each(function() { content.eq(Math.floor(Math.random()*total)).prependTo(container); }); } |
使い方は、シャッフルを行いたい要素の親要素を引数に指定します。
|
$(function() { shuffleContent($("ul#test")); }); |
結果は次のようになります。
|
<ul id="test"> <li>その8</li> <li>その7</li> <li>その2</li> <li>その4</li> <li>その0</li> <li>その1</li> <li>その5</li> <li>その3</li> <li>その9</li> <li>その6</li> </ul> |
Drupal 7のコアモジュールで利用されている、主要テンプレートファイルの一覧です。
DrupalではPHPテンプレートエンジンにより「.tpl.php」という拡張子を持つテンプレートファイルをもとにHTMLをレンダリングされます。
これらのファイルはシステム側にデフォルトのものが用意されていますが、オリジナルのテーマを作成する際には、このテンプレートファイルを自分のテーマディレクトリに同じ名前で格納することで、デフォルトよりも優先的に読み込み、レンダリングに反映させることができます。
ですので、オリジナルのテーマを作成する際には、これらのテンプレートファイルの編集が重要になってきます。
またデフォルトの各テンプレートファイルには、テンプレートファイル内で使える変数の説明をコメントに記載されていますので、編集の際に参考になります。
HTML(DOCTYPE、HEADなどBODYの外側) |
/modules/system/html.tpl.php |
ページ(BODYの内側) |
/modules/system/page.tpl.php |
領域(ヘッダー、コンテンツなど、レイアウト内の各領域) |
/modules/system/region.tpl.php |
ノード |
/modules/node/node.tpl.php |
フィールド(ノード内の本文や画像、その他追加フィールド) |
/modules/field/theme/field.tpl.php |
ブロック |
/modules/block/block.tpl.php |
コメント(コメント一覧、および各コメント) |
/modules/comment/comment-wrapper.tpl.php
/modules/comment/comment.tpl.php
|
検索(検索フォーム、および検索結果) |
/modules/search/search-block-form.tpl.php
/modules/search/search-result.tpl.php
/modules/search/search-results.tpl.php
|
サイトメンテナンス時のHTML |
/modules/system/maintenance-page.tpl.php |
タクソノミー |
/modules/taxonomy/taxonomy-term.tpl.php |
ユーザー(アバターや、ユーザー名などの各情報) |
/modules/user/user-picture.tpl.php
/modules/user/user-profile-category.tpl.php
/modules/user/user-profile-item.tpl.php
/modules/user/user-profile.tpl.php
|
MacのWeb開発アプリケーション「Coda」の新バージョンが登場しました。
2007年に登場以来、5年ぶりの初のメジャーアップデートとなりましたが、細部まで作り込まれた非常に完成度の高いアプリケーションとなっています。
もはやエディタと呼ぶには相応しくないくらい多機能で、大抵のことはCodaのみで完結してしまいそうです。

Coda 2ではユーザーインターフェイスの変更などもあり、使い慣れるまでには多少時間がかかるかもしれません。ファイルブラウザや分割ウィンドウ、タブなどは、より使いやすくなっているように感じます。
プラグインには後方互換があるようで、「Zen Cording」はそのまま使えるみたいなので、ちょっと安心しました。
MacのWeb開発環境では「Espresso」というアプリケーションも使いやすくて気に入っていますが、今後どちらをメインに使うか悩むところです。
パニック (Coda 2)
Drupal 7でノードのテンプレート内で日時の表示のメモです。
ノードのテンプレート内では「$created」で投稿日時の値を使えますが、Drupalで用意している日時フォーマットで表示するには次のように記述します。
|
<?php print format_date($created, 'short'); ?> |
2つ目の引数がフォーマットの名称で、「short」「medium」「long」が入ります。デフォルトでは「medium」なので、省略も可能です。
Drupalで用意しているフォーマット以外の書式にしたい場合は次のようにします。
|
<?php print format_date($created, 'custom', 'Y-m-d'); ?> |
フォーマットを「custom」として、3つ目の引数で書式を渡します。この場合はdate()関数を使うのと同じ働きになります。