2010-12-08 20 views
52

Tengo dos formulario como el siguiente:¿Cómo seleccionar un elemento de formulario específico en jQuery?

<form id='form1' name='form1'> 
    <input name='name' id='name'> 
    <input name='name2' id='name2'> 
</form> 

<form id='form2' name='form2'> 
    <input name='name' id='name'> 
    <input name='name2' id='name2'> 
</form> 

Ahora quiero insertar texto en nombre campo de la formulario2. Estoy usando following jQuery code pero llene nombre campo de form1.

$("#name").val('Hello World!'); 

Entonces, ¿cómo seleccionar elementos específicos del formulario solamente?

Respuesta

105

No es válido tener la misma ID dos veces, es por eso que #name solo encuentra la primera.

Usted puede tratar de:

$("#form2 input").val('Hello World!'); 

O

$("#form2 input[name=name]").val('Hello World!'); 

Si le pegan con una página no válida y desea seleccionar todos los #name s, se puede utilizar el selector de atributos en la Identificación :

$("input[id=name]").val('Hello World!'); 
+0

+1 Gracias. Una cosa más, ¿qué sucede si quiero seleccionar dos campos de un formulario específico usando el selector múltiple? – Awan

+4

'$ ('#formId field1Id, #formId field2Id')' – charliegriefer

+3

@Awan - Otra opción es '$ ('# form2 input')' para todos los campos de entrada, o '$ ('# form2 input'). Filter ('[name = name1], [name = name2]') ' – Kobi

8

aunque es hTML no válido, pero se puede usar el contexto de selección para limitar su sel ector en su caso sería:

$("input[name='name']" , "#form2").val("Hello World! ");

http://api.jquery.com/jquery/#selector-context

+3

Vale la pena señalar que '$ ('input [name = name]', '# form2'). val ('Hello World ! '); 'se traduce, internamente, por jQuery a' $ (' # form2 '). find (' input [name = name] '). val (' Hello World! ') '(ver: [jQuery API] (http://api.jquery.com/jquery/) para más detalles) –

+0

Olvidaste las comillas en la parte del nombre. Sin ellas recibo un error de sintaxis – ppumkin

-2
$("#name", '#form2').val("Hello World") 
1

Sé que la pregunta es sobre establecer una entrada, pero por si acaso si quieres establecer un cuadro combinado, entonces (busco una red y no encontré nada y este lugar parece un lugar correcto para guiar a otros)

If usted tenía un formulario con el conjunto de atributos ID (por ejemplo, frm1) y desea establecer un combobox específico específico, sin un conjunto de ID pero con un atributo de nombre establecido (por ejemplo, distrito); a continuación, utilizar

$("#frm1 select[name='district'] option[value='NWFP']").attr('selected', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
    <form id="frm1"> 
 
     <select name="district"> 
 
      <option value="" disabled="" selected="" hidden="">Area ...</option> 
 
      <option value="NWFP">NWFP</option> 
 
      <option value="FATA">FATA</option> 
 
     </select> 
 
    </form>

Cuestiones relacionadas