2012-02-12 12 views
20

Come posso selezionare un ingresso con nome come questo correttamente in jQuery senza assegnare gli ID?Selettori di input per l'array del nome Javascript (nome [sometext])

<input name="person[first]" type="hidden"> 
<input name="person[last]" type="hidden"> 

// Seems to be acting on multiple hidden elements instead of this named one 
// This sets the value of both of those hidden elements in some cases 
$("input[type=hidden][name=person[first]]").val('Test'); 

// So I've changed it to this. Is there a better way? 
$("input[name=person[first]]").val('Test'); 
+0

Puoi dare un esempio di cosa non funziona quando ci sono più elementi di input nascosti con l'HTML incluso? Non è chiaro dal tuo esempio. – Anurag

risposta

28

Mettere il valore di attributo tra virgolette ...

$("input[type=hidden][name='person[first]']").val(); 
    // ---------------------^-------------^ 

Da the docs for attribute-equals-selector ...

attributo Un nome di attributo.

valore Un valore di attributo. Può essere una singola parola non quotata o una stringa quotata.

Dato che si dispone di più di una singola parola, è necessario indicarlo.

3

Sono abbastanza sicuro che si suppone di mettere tra virgolette il valore di ogni selettore di attributo che include i simboli con significato in CSS. Come questo:

input[type=hidden][name='person[first]'] 
Problemi correlati