Born Neet

- The Emotional Programmer -

Shortcut Key
Next Page … J(Shift + j)Prev Page … K(Shift + k)
Scroll Down … Space / Page Down
Scroll Up … Shift + Space / Page Up
2008.03.05(Wed.) 23:16
 

ネタがないのでだいぶ前に気になって調べたことをメモ。

prototype.jsには、

Field.present(element1, [element2, ..., elementN])

という、渡したフォーム要素の中に空白のものが残っていないかをチェックできるメソッドがあります。

いや、正確にはありました。
このメソッド、現在は

Field.present(element)

という単一の要素をチェックするものになっているようです。
つまり、以前と同じように使っちゃうと先頭の要素しかチェックされないのです。

以下ソースコードで検証。
(こういうの一度やってみたかった!)

prototype.js 1.4.0のField.presentメソッド

  present: function() {
    for (var i = 0; i < arguments.length; i++)
      if ($(arguments[i]).value == '') return false;
    return true;
  },

たしかに渡された要素全てについてチェックしています。
サンプル(by prototype.js ver 1.4.0 リファレンス

prototype.js 1.5.0のField.presentメソッド

  present: function(element) {
    return $(element).value != '';
  },

こちらは単一の要素しかチェックしてません。
ので、期待した挙動にはなりませんprototype.js ver 1.5.0 リファレンス)。
最新版の1.6.0.2も同じでした。
Fieldのメソッドだから、意味的には今の方が正しいっぽいですね。(便利さは別として)

どうやらJavaScriptistで読み込まれてる1.5.0 rc0ぐらいまでは前者の処理だったようです。
Fieldのメソッドで複数の要素を処理するのはおかしいってことで修正されたんですかねぇ。

と、ダラダラ書いてきましたが、実は公式のドキュメントにはきちんと正しい挙動が書かれています。(おそらくバージョンアップ時にアナウンスもあったことでしょう)
やっぱり公式のドキュメントも見ようぜってことですかね。(整備されたのは1.5以降ですが…)
この他にも、返す結果が以前と変わってるメソッドがあるかもしれませんし。

以上、おそらく周知の事実なんでしょうが、日本語のリファレンスは昔のままのところが多いので一応書いてみました。
このメソッド自体あまり使われないかもしれませんが…。誰かのお役に立てれば幸いです。

[参考(本文でリンクしたもの以外)]

[余談]

まぁjQueryばっかりでprototypeはめったに使わないですけどねぇ。
最近は、Developers Summit 2008 の資料を公開します。 - IT戦記で(意外にも?)オススメされてたExt.JSを一度ちゃんと使ってみなきゃなぁ、とか思ってます。

Post your Comment
Name (任意) :
Title (任意) :
URL (任意) :
Comment (日本語必須) :
Trackback

※ 日本語必須


この記事のトラックバックURL:
  BackHOME : Next 
自作スクリプト実験
ブログ内検索
カレンダー
06 2008/07 08
S M T W T F S
1 3 4 5
8 9 10 11 12
13 14 15 16 18 19
20 21 22 23 24 25 26
27 28 29 30 31
最近のコメント
[07/06 ゆーいち]
[07/05 ゆーいち]
[07/04 ゆーいち]
[07/03 DREAM☆彡]
[05/25 のり]
最近のトラックバック
RSS
RSS 0.91
RSS 1.0
RSS 2.0
プロフィール
HN:
t*
運営日数:
?日
記事数:
?件
ブログパーツ
あわせて読みたい
スポンサード リンク

Born Neet wrote all articles. 
Powered by Ninja.blog / TemplateDesign by TMP, modified by t*  

お買い得商品満載「楽市楽座」忍者ブログ