Mantenere il valore della chiave di coppie insieme in HTML <select /> con jQuery?
-
09-06-2019 - |
Domanda
Dato a selezionare con più opzioni in jQuery.
$select = $("<select></select>");
$select.append("<option>Jason</option>") //Key = 1
.append("<option>John</option>") //Key = 32
.append("<option>Paul</option>") //Key = 423
Come dovrebbe essere la chiave di essere memorizzati e recuperati?
L'ID può essere un posto OK, ma non sarebbe garantita unico se ho avuto più selezionare condivisione di valori (e di altri scenari).
Grazie
e nello spirito di TMTOWTDI.
$option = $("<option></option>");
$select = $("<select></select>");
$select.addOption = function(value,text){
$(this).append($("<option/>").val(value).text(text));
};
$select.append($option.val(1).text("Jason").clone())
.append("<option value=32>John</option>")
.append($("<option/>").val(423).text("Paul"))
.addOption("321","Lenny");
Soluzione
Lucas ha detto che il valore dell'attributo è di che cosa avete bisogno.Utilizzando il codice sarebbe simile a questa ( io ho aggiunto un attributo id per la selezione per adattarlo ):
$select = $('<select id="mySelect"></select>');
$select.append('<option value="1">Jason</option>') //Key = 1
.append('<option value="32">John</option>') //Key = 32
.append('<option value="423">Paul</option>') //Key = 423
jQuery consente di ottenere il valore utilizzando la val() metodo.Usando il tag select si ottiene la corrente è selezionata l'opzione di valore.
$( '#mySelect' ).val(); //Gets the value for the current selected option
$( '#mySelect > option' ).each( function( index, option ) {
option.val(); //The value for each individual option
} );
Solo nel caso, l' .ogni metodo loop attraverso ogni elemento la query corrispondente.
Altri suggerimenti
HTML <option>
tag ha un attributo chiamato "valore", in cui è possibile memorizzare la vostra chiave.
ad esempio:
<option value=1>Jason</option>
Non so come andrà a giocare con jQuery (io non lo uso), ma spero che questo sia utile comunque.
Se si utilizza HTML5, è possibile utilizzare un dati personalizzati attributo.Sarebbe simile a questa:
$select = $("<select></select>");
$select.append("<option data-key=\"1\">Jason</option>") //Key = 1
.append("<option data-key=\"32\">John</option>") //Key = 32
.append("<option data-key=\"423\">Paul</option>") //Key = 423
Quindi per ottenere la chiave selezionata si potrebbe fare:
var key = $('select option:selected').attr('data-key');
O se si utilizza XHTML, quindi è possibile creare uno spazio dei nomi personalizzato.
Dal momento che si dice che i tasti possono ripetere, usando l'attributo value, probabilmente non è un'opzione da allora non saresti in grado di dire quale delle diverse opzioni con lo stesso valore è stato selezionato il post del modulo.