2012-06-05 27 views
5

Voy a saltar directamente con el marcado, luego explicaré lo que estoy tratando de hacer.Jquery: ¿cómo captar el tipo de datos específico de la opción después de seleccionar esa opción?

HTML seleccionar opciones

<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"> 

script de jQuery que estoy luchando. La secuencia de comandos a continuación muestra el valor de la opción seleccionada, por supuesto, pero no puedo encontrar la forma de acceder a la información data-url.

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

En pocas palabras, Estoy realmente el value de input#1e ser el data-url de #1d de la selección.

Gracias por su ayuda.

Respuesta

7

¿Qué tal eso?

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

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


también personalmente me gusta esta solución:

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

que lo hizo. Gracias. Lo seguí intentando sin ': selected'. No es de extrañar. –

+0

+1 ¡Buena respuesta y con un ejemplo! – simonlchilds

+0

Una alternativa para obtener el elemento seleccionado: '$ ('# 1e'). Val ($ (this.options [this.selectedIndex]). Data ('url'));' – Mathachew

Cuestiones relacionadas