所以这是我的场景,我需要输入名称和ID等于两个不同的东西,但下面的代码只允许效果工作,如果label,id和name都具有相同的值,例如下面的代码工作罚款:
<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。提前谢谢。
(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);
答案 0 :(得分:2)
实际上,这不是插件的问题。 label for="id"
的规范是标签应使用元素id作为其for
属性。在“我需要它的方式”属性中,您将名称用作for
属性。不会工作。名称不需要与id匹配,但是您在“for”中放置的元素ID必须与元素的id属性匹配。
答案 1 :(得分: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>
除非您需要name
和id
属性与该输入不同...如果是这种情况,请您解释为什么/您要尝试用它完成什么?