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 :(

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');

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


26

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

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


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');


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]')

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.