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");
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top