2010-12-15 12 views
0

ため、このjQueryの内野ラベルで私を助けることができる、私は入力名やID等しい二つの異なるものを持っている必要がありますが、ラベル、ID、および名前場合は、以下のコードは、唯一の効果が動作することができますすべては、例えば次のコードは正常に動作し、同じ値を持っている:誰でもだからここに私のシナリオだテキスト入力

 <p> 
      <label for="eventid" class="label_login">*Participant Code</label><br /> 
      <input type="text" name="eventid" value="" id="eventid" class="input_size"/>  
     </p> 

私は私はそれはそれである必要がどのようにそれを変更すると、完全に私はそれがする必要がどのように働いて

例を停止します

 <p> 
      <label for="eventid" class="label_login">*Participant Code</label><br /> 
      <input type="text" name="eventid" value="" id="part_code" class="input_size"/> 
     </p> 

以下のjQueryスクリプトで、名前、ラベル、およびIDがすべて一致していることを誰にも教えてください。その要件から名前やIDを削除するにはどうすればよいですか。前もって感謝します。

Non-minified version

(function($){$.InFieldLabels=function(b,c,d){var f=this;f.$label=$(b);f.label=b;f.$field=$(c);f.field=c;f.$label.data("InFieldLabels",f);f.showing=true;f.init=function(){f.options=$.extend({},$.InFieldLabels.defaultOptions,d);if(f.$field.val()!=""){f.$label.hide();f.showing=false};f.$field.focus(function(){f.fadeOnFocus()}).blur(function(){f.checkForEmpty(true)}).bind('keydown.infieldlabel',function(e){f.hideOnChange(e)}).change(function(e){f.checkForEmpty()}).bind('onPropertyChange',function(){f.checkForEmpty()})};f.fadeOnFocus=function(){if(f.showing){f.setOpacity(f.options.fadeOpacity)}};f.setOpacity=function(a){f.$label.stop().animate({opacity:a},f.options.fadeDuration);f.showing=(a>0.0)};f.checkForEmpty=function(a){if(f.$field.val()==""){f.prepForShow();f.setOpacity(a?1.0:f.options.fadeOpacity)}else{f.setOpacity(0.0)}};f.prepForShow=function(e){if(!f.showing){f.$label.css({opacity:0.0}).show();f.$field.bind('keydown.infieldlabel',function(e){f.hideOnChange(e)})}};f.hideOnChange=function(e){if((e.keyCode==16)||(e.keyCode==9))return;if(f.showing){f.$label.hide();f.showing=false};f.$field.unbind('keydown.infieldlabel')};f.init()};$.InFieldLabels.defaultOptions={fadeOpacity:0.5,fadeDuration:300};$.fn.inFieldLabels=function(c){return this.each(function(){var a=$(this).attr('for');if(!a)return;var b=$("input#"+a+"[type='text'],"+"input#"+a+"[type='password'],"+"textarea#"+a);if(b.length==0)return;(new $.InFieldLabels(this,b[0],c))})}})(jQuery); 
+1

提供するプラグインコードは、130行のjavascriptファイルの縮小バージョンです。それは本当に助けたい人には使えません。 (私は完全なソースコードへのリンクを追加しました) –

+0

ところで、これが私がそれを取った例を見つけたところですが、これが助けてくれることを願っています。 http://fuelyourcoding.com/scripts/infield/ – NewB

答えて

2

実は、これはプラグインの問題ではありません。 label for="id"の指定では、ラベルは要素IDをfor属性として使用する必要があります。あなたの "どのようにする必要がある"属性では、forという名前の属性を使用しています。うまく動かない。名前はidと一致する必要はありませんが、 "for"に入れた要素idは要素のid属性と一致する必要があります。

+0

私の頭を傷つけるいくつかの時間を過ごした後、ちょっとおかしい気分になりました。ありがとうJacob – NewB

+2

@NewB "ちょっと気分が悪い"というのは、この業界のすべての人が遭遇する定期的な状態です:) –

0

あなたはそのプラグインでプロパティの名前を/ idに変更できませんか?

<p> 
     <label for="part_code" class="label_login">*Participant Code</label><br /> 
     <input type="text" name="part_code" value="" id="part_code" class="input_size"/> 
    </p> 

あなたはその入力に対して異なるようにnameid性質を必要とする場合を除きその場合は...あなたはそれを達成しようとしている理由/何を説明してくださいできますか?

関連する問題