2014-11-12 19 views
5

Ho creato un menu a discesa di alcuni mesi come opzioni, ma ho voluto predesignare un'opzione come valore predefinito. Tuttavia, la selezione predefinita sembrava ostinatamente rimanere la prima opzione nell'elenco.Impostazione predefinita di un menu a discesa con D3

Ho provato il codice seguente, che per me ha molto senso perché per qualsiasi altro attributo, l'impostazione di un semplice confronto è sufficiente per modificare il valore di tale attributo.

var defaultOptionName; // desired default dropdown name 
d3.select("#dropdown").append("select") 
    .on("change", someFunction) 
    .selectAll("option").data(dataset) 
    .enter().append("option") 
    .attr("value", function(d){return d;}) 
    .attr("selected", function(d){ 
     return d === defaultOptionName; 
    }) 
    .text(function(d){ return d; }); 

sapevo che il mio problema era solo una questione di sintassi giusta, ma quando ho provato a cercare in internet e StackOverflow, ma non riuscivo a capire cosa mi mancava.

risposta

9

Ho trovato che invece di utilizzare .attr, avevo bisogno di usare .property per accedere all'opzione di selezione predefinita. Una semplice sostituzione era tutto ciò che era necessario, quindi il tuo frammento di codice sarebbe simile a:

.property("selected", function(d){ return d === defaultOptionName; }) 
Problemi correlati