2012-06-05 11 views
5

Salterò dritto con il markup, quindi spiegherò cosa sto cercando di fare.Jquery - Come selezionare il tipo di dati specifico dell'opzione dopo che l'opzione è stata selezionata?

Html selezionare le opzioni

<select id="1d" name="camp"> 
    <option data-url="week_1" value="Week 1">30th July</option> 
    <option data-url="week_2" value="Week 2">6th August</option> 
    </select> 
    <input type="hidden" name="camp_url" id="1e"> 

Jquery sceneggiatura sto lottando con. Lo script qui sotto mostra il valore dell'opzione selezionata, ovviamente, ma non riesco a trovare un modo per accedere alle informazioni data-url.

$('#1d').change(function() { 
     $('#1e').val($(this).val()); 
    }); 

Linea di fondo, sto avendo bisogno la value di input#1e essere il data-url di #1d dopo la selezione.

Grazie per il vostro aiuto.

risposta

7

Che ne dici?

$("#1d").on("change", function() { 
    var url = $(this).children(":selected").data("url"); 
    $("#1e").val(url); 
}); 

DEMO:http://jsfiddle.net/aRzNn/


anche personalmente mi piace questa soluzione:

$("#1d").on("change", function() { 
    $("#1e").val(function() { 
     return $("#1d > :selected").data("url"); 
    }); 
});​ 
+0

che ha fatto. Grazie. Ho continuato a provarlo senza ': selected'. Nessuna sorpresa. –

+0

+1 Buona risposta e con un esempio! – simonlchilds

+0

Un'alternativa per ottenere l'elemento selezionato: '$ ('# 1e'). Val ($ (this.options [this.selectedIndex]). Data ('url'));' – Mathachew

Problemi correlati