jQuery cambiar el valor del texto de entrada

155

No puedo encontrar el selector adecuado para:

<input maxlength="6" size="6" id="colorpickerField1" name="sitebg" value="#EEEEEE" type="text">

Quiero cambiar el valor a = 000000. Necesito el selector para encontrar el "nombre", no la identificación de la entrada de texto.

¿No debería funcionar esto ?:

$("text.sitebg").val("000000");

La solución presentada no funciona, ¿cuál es el problema con esto?

$.getJSON("http://www.mysitehere.org/wp-content/themes/ctr-theme/update_genform.php",function(data) {
    $("#form1").append(data.sitebg);
    $('input.sitebg').val('000000');
});

Los datos JSON funcionan correctamente; la idea es luego pasar los valores JSON a los valores del texto de entrada del formulario. Pero no funciona :(

Joricam
fuente

Respuestas:

308

no, necesitas hacer algo como:

$('input.sitebg').val('000000');

pero realmente deberías estar usando identificaciones únicas si puedes.

También puede ser más específico, como:

$('input[type=text].sitebg').val('000000');

EDITAR:

haga esto para encontrar su entrada en función del atributo de nombre:

$('input[name=sitebg]').val('000000');
Jason
fuente
Voy a aceptar este libro, ¿me puede recomendar un buen libro / tutorial (preferiblemente un libro) sobre jquery donde realmente pueda aprender acerca de los selectores? especialmente los selectores de forma?
Joricam
77
esto es, de lejos, lo mejor en Internet: futurecolors.ru/jquery
Jason
@ Jason El enlace está roto, ¿cuál es el título del libro, por favor?
oyalhi
@oyalhi oh no! Lo siento. ese comentario tiene 5 años, así que supongo que lo eliminaron :(
Jason
@ Jason Sí, por desgracia. Sin embargo, ¿recuerdas el título del libro?
oyalhi
31

La forma de jQuery para cambiar el valor en el campo de entrada de texto es:

$('#colorpickerField1').attr('value', '#000000')

esto cambiará el atributo valuepara el elemento DOM con ID #colorpickerField1de #EEEEEEa#000000

Vladimir Kroz
fuente
26

La mejor práctica es usar la identificación directamente:

$('#id').val('xxx');

MGE
fuente
simple y mejor :)
MRRaja
2
¿Por qué funciona esto pero document.getElementById("#id").value = 'xxx';no funciona para mí? No cambia el valor de texto que aparece, solo la propiedad de valor del elemento DOM.
user3494047
1
Ya usa el método ById, # es para notación css. Quitarlo
Scott Chu
9

Cuando establece el nuevo valor del elemento, necesita un cambio de activación de llamada.

$('element').val(newValue).trigger('change');

Richelly Italo
fuente
Esto solucionó un problema para mí donde se llamaba dos veces al controlador de eventos de cambio; una vez con el nuevo valor y luego otra vez con [attr = val]
Peter Lenjo
3

Solo agregando a la respuesta de Jason, el .selector es solo para clases. Si desea seleccionar algo distinto del elemento, id o clase, debe ponerlo entre corchetes.

p.ej

$('element[attr=val]')

Robert Ingrum
fuente