la selezione dynamic jquery non invia valori

Modifica di nuovo … Sono solo un manichino e capito!

EDIT: Quindi, sembra che se evidenzi tutto nella casella di selezione target e fai clic su “Aggiungi selezionati”, invia … Come correggo questo comportamento nel codice qui sotto in modo da non dover fare clic su “Aggiungi selezionato “per farlo funzionare?

Ho un modulo che include tre caselle di selezione. Il primo è categorie, e selezionando una categoria da esso popolerà le variabili casella di selezione multipla con valori specifici per la categoria selezionata. Selezionando le variabili e facendo clic su “aggiungi selezionato” popolerà la casella di selezione del target quelle variabili. Il problema è che print_r mostra che i valori nella casella di selezione di destinazione non vengono passati al momento dell’invio e non capisco perché … Di seguito è riportato il codice e l’aiuto è molto apprezzato

Ecco il markup html:

 Income Gender Age  

// nota che sto mostrando solo variabili per una presumibilmente selezionata categoria

  Less Than $15,000 $15,000 - $19,999 $20,000 - $29,999 $30,000 - $39,999 $40,000 - $49,999 $90,000 - $99,999 $100,000 - $124,999 $125,000 - $149,999 Greater than $149,999    

Ed ecco il codice jquery:

 $(function(){ var opts = {}, $cats = $("#categories"), $target = $("#target"), $vars = $("#variables"); $vars.find("option").each(function(){ var $opt = $(this), cat = this.className, value = this.value, label = $opt.text(); if(!opts[cat]) { opts[cat] = []; } opts[cat].push({label: label, value: value}); $opt.remove(); }); function update_variables(){ var cat = $cats.val(), new_opts = []; $vars.empty(); $.each(opts[cat], function(){ if( $target.find('[value=' + this.value + ']').length === 0 ){ new_opts.push(option(this.value, this.label)); } }); $vars.html(new_opts.join('')); } function option(value, label){ return "" + label + ""; } $("#add").click(function(e){ e.preventDefault(); $vars.find(':selected').appendTo($target).attr('selected',false); update_variables(); }); $("#remove").click(function(e){ e.preventDefault(); $target.find(':selected').remove(); update_variables(); }); $cats.change(function(){ update_variables(); }).change(); }) 

Non riesco a vedere tutto il tuo codice, quindi perdonami se sto indicando qualcosa di ovvio.

Quando invii il modulo, tutti gli elementi nella casella di selezione “target” dovranno essere “selezionati”. Altrimenti il ​​browser non li invierà nella richiesta.

Puoi eseguire questa selezione nel metodo di invio del modulo. Qualcosa come questo:

 $('#formid').submit(function() { $("#target").find('option').attr('selected',true); }); 

Spero che questo ti aiuti