2011-03-12 11 views
6

Estoy trabajando en una función de marcador de posición en jquery. En este momento, solo quiero que el elemento de formulario cambie su valor a cualquiera que sea su marcador de posición. Probé el siguiente código:

$('input:text').val($(this).attr('placeholder')); 

Pero no funciona. Después de probarlo un poco, me di cuenta de que el problema está en usar $(this) en ese contexto. ¿Cómo puedo cambiar esto para que recorra todos los elementos del formulario y cambie su valor a su atributo de marcador de posición?

+1

'this' sólo puede diferir dentro de las funciones, no en un argumento sin una función. Aquí, 'this' es lo mismo que' this' usado fuera de esta línea de código en la misma función. – pimvdb

Respuesta

8
$('input:text').val(function() { 
    return $(this).attr('placeholder'); 
}); 

o:

$('input:text').attr('value', function() { 
    return $(this).attr('placeholder'); 
}); 

Y aquí es un live demo.

5

La mayoría de estas funciones setter jQuery proporcionan una forma de especificar una función cuyo valor de retorno se utilizará. Esta es una forma de hacer uso de $(this).

$('input:text').val(function() { 
    return $(this).attr('placeholder'); 
}); 

jQuery val() Reference

+0

tienes un nombre curioso kapa: D –

Cuestiones relacionadas