2012-01-03 46 views
0

私は良いデフォルト値チェックを行っており、クライアントはonBlurイベントに追加の機能を追加したいと考えています。デフォルト値のチェックはグローバルで正常に動作します。新しい機能には、いくつかのフィールド固有の値を新しい関数に渡す必要があります。それがこれではなかったら、私はそれをデフォルトチェックにつけてやります。同じonBlurイベントで複数の関数を作成できますか?

私の質問は私がこのようなことをすることができ、それらを両方の火災ですか?何が良い方法だろうか?

DEFAULT-CHECK

$(document.body).getElements('input[type=text],textarea,tel,email').addEvents ({ 
    'focus' : function(){ 
     if (this.get('value') == this.defaultValue) 
     { 
      this.set('value', ''); 
     } 
    }, 
    'blur' : function(){ 
     if (this.get('value') == '') 
     { 
      this.set('value', (this.defaultValue)); 
     } 
    } 
}); 

追加機能

<input type='text' id='field_01' value='default data' onBlur='driveData(event, variableForThisField, this.value);'>

アイデアはいつものようにデフォルト値を扱うが、フィールドの値が入力されたときに新しい機能を発射することです。私が最初に発射しなければならないようだが、どうやって!?

フィールドに値が渡されているため、グローバルデフォルトチェック機能にダンプすることはできません。

希望します。

WR!

+0

が鳴ります。通常通り、デフォルト値とカスタムバリデーターを扱うことができます。ここで私が書いたプラグインを見てください:https://github.com/DimitarChristoff/mooPlaceholderとjsfiddleが提供されています。 mootoolsの偽造には他にも同様のプラグインがたくさんあります。 –

+0

@Dimitar:ロードするリンクを取得できませんでした。 :(しかし、私は将来の参照のためにそれを調べる:) :)ありがとうございます! :D WR! – WhiteRau

答えて

1

custom data attributeにカスタム変数を保存するだけです。ない技術的標準に準拠した[HTML 4で]が、それは動作します:

<input type='text' id='field_01' value='default data' data-customvar="variableForThisField"> 

$(document.body).getElements('input[type=text],textarea,tel,email').addEvents ({ 
    'focus' : function(){ 
     if (this.get('value') == this.defaultValue) 
     { 
      this.set('value', ''); 
     } 
    }, 
    'blur' : function(){ 
     if (this.get('value') == '') 
     { 
      this.set('value', (this.defaultValue)); 
     } else { 
      driveData(this.get('value'), this.get('data-customvar')); 
     } 
    } 
}); 

フィドル:あなたは本当に非HTML5ブラウザのフォールバックと `プレースホルダ=` HTML5 funcを必要とするかのようにhttp://jsfiddle.net/QkcxP/6/

+0

リング・ア・ディング・ダイ、もちろん!私はあなたがそれを見るときに右の答えがちょうど「クリック」に行くとき、それを愛する! :)ありがとう@primatology。今明らかになったようだ... WR! – WhiteRau

+0

問題はありません、@WhiteRau!助けてうれしい! :) – benesch

0

Mootoolsを使用していると思いますか?私は構文を認識しませんが、私はJSFiddleを作成しました。これはMootoolsで動作するように見えますが、他のライブラリでは動作しません。 http://jsfiddle.net/NDTsz/

回答がはいあるように思われる - 確かにChromeで、私はすべてのブラウザで信じている:

ここで私はそれをテストするために作成したフィドルです。

関連する問題