Ich würde das mit JS machen, das ist einfacher. Ich habe hier (leider nur für jQuery) ein Script, welches den Browser auf die Unterstützung von Placeholder kontrolliert und bei true die Labels ausblendet. Das kannst du ein wenig anpassen, sodass du das Placeholder-Attribut aus dem Label in die Felder setzt. Das FOR-Attribut passt immer zur Field-ID, damit ist es wahrscheinlich am einfachsten die Felder zu finden.
JS-Code:
PHP-Code:
(function($) {
$(document).ready(function() {
$('#top').addClass('js');
// hide the labels if placeholders are supported
var checkPlaceholderSupport = function() {
var test = document.createElement('input');
return ('placeholder' in test);
}
if(checkPlaceholderSupport()) {
$('#top').addClass('knows_placehoder');
$('.widget-text label, .widget-textarea label, .search .submit_container').addClass('invisible');
}
});
})(jQuery);
Die Anpassung könnte ungefähr so aussehen (ungetestet)
JS-Code:
PHP-Code:
(function($) {
$(document).ready(function() {
$('#top').addClass('js');
// Hide the labels if placeholders are supported
var checkPlaceholderSupport = function() {
var test = document.createElement('input');
return ('placeholder' in test);
}
if(checkPlaceholderSupport()) {
$('#top').addClass('knows_placehoder');
$('.widget-text label, .widget-textarea label, .search .submit_container').addClass('invisible');
// Build placeholder from label
var labels = $('label');
labels.each(function() {
var formField = $('#' + $(this).attr('for'));
if(formField.hasClass('text') || formField.hasClass('textarea')) {
var dummyLabel = $(this).clone();
dummyLabel.children().remove();
var placeholderText = dummyLabel.text().trim();
formField.attr('placeholder', placeholderText);
}
});
}
});
})(jQuery);
Lesezeichen