bym sugerował jeden z następujących sposobów:
$('input:text').each(
function(i,el) {
if (!el.value || el.value == '') {
el.placeholder = 'placeholdertext';
/* or:
el.placeholder = $('label[for=' + el.id + ']').text();
*/
}
});
JS Fiddle demo using el.placeholder = 'placeholdertext'
.
JS Fiddle demo using el.placeholder = $('label[for=' + el.id + ']').text()
.
Albo można użyć tablicę do przechowywania różnych zastępcze:
var placeholders = ['Email address', 'favourite color'];
$('input:text').each(
function(i,el) {
if (!el.value || el.value == '') {
el.placeholder = placeholders[i];
}
});
JS Fiddle demo.
Aby określić konkretny zastępczy dla danego elementu:
var placeholders = {
'one' : 'Email address',
'two' : 'Favourite color'
};
$('input:text').each(
function(i,el) {
if (!el.value || el.value == '') {
el.placeholder = placeholders[el.id];
}
});
JS Fiddle demo.
Dodany haczyk/fall-back w przypadku, gdy wpis nie istnieje w zastępczych obiektów dla danego input
:
var placeholders = {
'oe' : 'Email address', // <-- deliberate typo over there
'two' : 'Favourite color'
};
$('input:text').each(
function(i,el) {
if (!el.value || el.value == '') {
el.placeholder = placeholders[el.id] || '';
}
});
JS Fiddle demo.
http://jsfiddle.net/gT7dv/ –
@RPM To byłoby zbyt proste, prawda? :) Napisałem, że nie mogę wpływać na wynik HTML. To jest kod, który mam i muszę dodać atrybut zastępczy z jQuery – take2
Nie ma to wpływu na wynik HTML w ogóle (z wyjątkiem dodania symbolu zastępczego, który jest tym, czego potrzebujesz, czyż nie?)! Pamiętaj jednak, że jest to dla HTML 5! – Robyflc