Windowsのログインボックスのように機能するものが欲しいのですが。内部にラベルが表示されていて、ユーザーが入力を開始するとラベルが消えるボックス。
私が見つけることができるのは、jQueryを使用するソリューションだけです。jQueryをロードする必要のないjavascript/CSSソリューションを知っている人はいますか?HTML5のプレースホルダー属性以外のものを意味します。新しいものだけでなく、ほとんどのブラウザで機能するものが欲しいです。
Windowsのログインボックスのように機能するものが欲しいのですが。内部にラベルが表示されていて、ユーザーが入力を開始するとラベルが消えるボックス。
私が見つけることができるのは、jQueryを使用するソリューションだけです。jQueryをロードする必要のないjavascript/CSSソリューションを知っている人はいますか?HTML5のプレースホルダー属性以外のものを意味します。新しいものだけでなく、ほとんどのブラウザで機能するものが欲しいです。
https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills これらのプラグインのほとんどでは、jquery部分を削除して、スタンドアロンとして使用できます。
他のライブラリに依存しない HTML5 プレースホルダー ポリフィル:
これは私が過去に使用したものです:
activatePlaceHolder: function() {
var detect = navigator.userAgent.toLowerCase();
if (detect.indexOf("msie") < 0) return false;
var inputs = document.getElementsByTagName("input");
var inputLen = inputs.length;
for (var i = 0; i < inputLen; i++) {
if (inputs[i].getAttribute("type") == "text") {
if (inputs[i].getAttribute("placeholder") && inputs[i].getAttribute("placeholder").length > 0) {
inputs[i].value = inputs[i].getAttribute("placeholder");
inputs[i].onclick = function() {
if (this.value == this.getAttribute("placeholder")) {
this.value = "";
}
return false;
}
inputs[i].onblur = function() {
if (this.value.length < 1) {
this.value = this.getAttribute("placeholder");
}
}
}
}
}
}
あなたは自分自身をロールバックすることができます...これは私が一緒に通過したJSFiddleです。http://jsfiddle.net/VF8Dr/
CSS
.placeholder {
color: gray;
position: absolute;
padding-left: 10px;
}
JS
function addPlaceholder(id, text) {
var elm = document.getElementById(id);
var ph = document.createElement("SPAN");
ph.className = "placeholder";
ph.innerHTML = text;
elm.parentNode.insertBefore(ph, elm.nextSibling);
ph.style.left = elm.offsetLeft + 'px';
ph.style.top = elm.offsetTop + 'px';
ph.onclick = function() {
ph.style.display = 'none';
elm.focus();
};
elm.onfocus = function() {
if(ph.style.display != 'none')
ph.style.display = 'none';
};
elm.onblur = function() {
if(elm.value == '')
ph.style.display = '';
};
}
addPlaceholder("demo", "my text");
明らかに、広範囲にテストされているわけではありませんが、jQuery のようなフレームワークを使用しないことに固執している (または不要な肥大化を回避している) が、それでもクロスブラウザーと古いブラウザーの互換性が必要な場合は、そこに到達するのに役立ちます.