私は以下のコードを使用していますが、このフィドルhttp://jsfiddle.net/peter/Xt5qu/にも入力値としてラベルを使用しています。どのような変更を行うことができますので、パスワードフィールドにはラベルはクリアテキストですが、入力すると非表示になります。ラベルを値として使用している場合、パスワード入力フィールドにクリアテキストでパスワードを表示するにはどうすればいいですか?
<form id="new_account_form" method="post" action="#" class="login-form">
<ul>
<li>
<label for="user_email">Email address</label>
<input id="user_email" name="user_email" required="" class="validate[required,custom[email]] clearOnFocus login-itext" type="text">
</li>
<li>
<label for="user_password">Password</label>
<input id="user_password" name="user_password" required="" class="validate[required,minSize[6]] clearOnFocus login-itext" type="password">
</li>
<li>
<input name="Submit" type="submit" class="login-ibutton" value="Sign in"></li>
</ul>
</form>
<script script type="text/javascript">
this.label2value = function(){
// CSS class names
// put any class name you want
// define this in external css (example provided)
var inactive = "inactive";
var active = "active";
var focused = "focused";
// function
$("label").each(function(){
obj = document.getElementById($(this).attr("for"));
if(($(obj).attr("type") == "text", "password") || (obj.tagName.toLowerCase() == "textarea")){
$(obj).addClass(inactive);
var text = $(this).text();
$(this).css("display","none");
$(obj).val(text);
$(obj).focus(function(){
$(this).addClass(focused);
$(this).removeClass(inactive);
$(this).removeClass(active);
if($(this).val() == text) $(this).val("");
});
$(obj).blur(function(){
$(this).removeClass(focused);
if($(this).val() == "") {
$(this).val(text);
$(this).addClass(inactive);
} else {
$(this).addClass(active);
};
});
};
});
};
// on load
$(document).ready(function(){
label2value();
});
</script>
ありがとう、私は文字のディスプレイを持っていないよ、私の下の答えからiphone jqueryのプラグインのようにマスクされている。あなたは入力の種類を切り替えるjsfiddleの例を私に見せることができますか? – Anagio
答えが更新され、リンクが追加されました。私はまた、 'mouseover'と' mouseout'の例をFiddleに含めました。 –
私のラベルが値として使用されているので、ぼかしとフォーカスが競合していたので、マウスアウトがきれいに機能しました。おかげでロブ – Anagio