Webアプリケーションでplaceholder="xxx"
属性を使用しようとしていますが、IE9用に特別なビジュアルを使用したくありません。人々はIE9でこの機能を達成するための良い提案を投げ捨てることができますか?IE9 HTML5プレースホルダ - 人々はどのようにこれを達成していますか?
私はここにいくつかのリンクを見つけましたが、提案されたスクリプトはどれも十分ではありませんでした...そして回答は2011年半ばからでしたので、もっと良い解決策があると思いました。おそらく、広く採用されているjQueryプラグインを使用していますか?私は、特定のCSSクラスなどを必要とするような、侵入型コードを必要とするものは使用したくありません。
ありがとうございました。
EDIT - パスワード入力フィールドでも動作する必要があります。
// the below snippet should work, but isn't.
$(document).ready(function() {
initPlaceholders()();
}
function initPlaceholders() {
$.support.placeholder = false;
var test = document.createElement('input');
if ('placeholder' in test) {
$.support.placeholder = true;
return function() { }
} else {
return function() {
$(function() {
var active = document.activeElement;
$('form').delegate(':text, :password', 'focus', function() {
var _placeholder = $(this).attr('placeholder'),
_val = $(this).val();
if (_placeholder != '' && _val == _placeholder) {
$(this).val('').removeClass('hasPlaceholder');
}
}).delegate(':text, :password', 'blur', function() {
var _placeholder = $(this).attr('placeholder'),
_val = $(this).val();
if (_placeholder != '' && (_val == '' || _val == _placeholder)) {
$(this).val(_placeholder).addClass('hasPlaceholder');
}
}).submit(function() {
$(this).find('.hasPlaceholder').each(function() { $(this).val(''); });
});
$(':text, :password').blur();
$(active).focus();
});
}
}
}
[IE9のプレースホルダ(http://stackoverflow.com/questions/6366021/placeholder-in-ie9) –