Ciao, penso che il problema sia nell'uso del metodo text() di jQuery:
Come è logico pensare, questo metodo inserisce del contenuto testuale dentro l'elemento in questione. Quello che viene passato a tale metodo è quindi inserito come testo anche se presenta dei tag html come nel tuo caso.codice:$("#id_id_comuni").text("<option value='"+val.id+"'>"+val.cap+" "+val.localita+"</option>")
Infatti le parentesi angolari (< e >) vengono normalmente convertite in entità html se devono essere trattate come testo. Suppongo quindi che tu non veda nulla dentro il <select> perché il contenuto testuale non viene mostrato se non dentro regolari elementi <option>.
Il metodo che dovresti usare è invece html().
Prova e fai sapere.