2011-03-16 15 views
19

Tengo un menú desplegable que tiene muchas opciones. Quiero que cuando seleccione cualquier opción , llame a una función a través de JavaScript.cómo puede seleccionar desde el menú desplegable y llamar a la función javascript

el código que he utilizado aquí es

<select name="aa" onchange="report(this.value)"> <--- this is function in .js 
<option value="daily">daily</option> 
<option value="monthly">monthly</option> 
</select> 

quiero cuando selecciono al día, entonces la función (diario) se invoca y viceversa.

function report(daily)<-- js function { 
    loadXMLDoc('script/d_report.php','responseTag'); 
    document.getElementById('responseTag').style.visibility='visible'; 
    document.getElementById('list_report').style.visibility='hidden'; 
    document.getElementById('formTag').style.visibility='hidden'; 
} 
function report(monthly) { 
    document.getElementById('responseTag').style.visibility='visible'; 
    loadXMLDoc('script/m_report.php','responseTag'); 
    document.getElementById('list_report').style.visibility='hidden'; 
    document.getElementById('formTag').style.visibility='hidden'; 
} 
+0

, donde es su código? ¿Dónde están las funciones? –

+0

su código en html – sadi

+0

sadi

Respuesta

27
<select name="aa" onchange="report(this.value)"> 
    <option value="">Please select</option> 
    <option value="daily">daily</option> 
    <option value="monthly">monthly</option> 
</select> 

usando

function report(period) { 
    if (period=="") return; // please select - possibly you want something else here 

    var report = "script/"+((period == "daily")?"d":"m")+"_report.php"; 
    loadXMLDoc(report,'responseTag'); 
    document.getElementById('responseTag').style.visibility='visible'; 
    document.getElementById('list_report').style.visibility='hidden'; 
    document.getElementById('formTag').style.visibility='hidden'; 
} 

versión discreta:

<select id="aa" name="aa"> 
    <option value="">Please select</option> 
    <option value="daily">daily</option> 
    <option value="monthly">monthly</option> 
</select> 

usando

window.onload=function() { 
    document.getElementById("aa").onchange=function() { 
    var period = this.value; 
    if (period=="") return; // please select - possibly you want something else here 

    var report = "script/"+((period == "daily")?"d":"m")+"_report.php"; 
    loadXMLDoc(report,'responseTag'); 
    document.getElementById('responseTag').style.visibility='visible'; 
    document.getElementById('list_report').style.visibility='hidden'; 
    document.getElementById('formTag').style.visibility='hidden'; 
    } 
} 

versión de jQuery - seleccione misma con ID

$(function() { 
    $("#aa").on("change",function() { 
    var period = this.value; 
    if (period=="") return; // please select - possibly you want something else here 

    var report = "script/"+((period == "daily")?"d":"m")+"_report.php"; 
    loadXMLDoc(report,'responseTag'); 
    $('#responseTag').show(); 
    $('#list_report').hide(); 
    $('#formTag').hide(); 
    }); 
}); 
+0

Gracias está trabajando ahora – sadi

-1
<script type="text/javascript"> 
function report(func) 
{ 
    func(); 
} 

function daily() 
{ 
    alert('daily'); 
} 

function monthly() 
{ 
    alert('monthly'); 
} 
</script> 
+0

y en html es cierto ????? – sadi

+0

La diferencia es qué informe mostrar. ¿Por qué tener varias funciones cuando todo lo que necesita es una función simple de elección – mplungjan

2

Saludos si consigo que la derecha se necesita una función de JavaScript que hacerlo

function report(v) { 
//To Do 
    switch(v) { 
    case "daily": 
     //Do something 
     break; 
    case "monthly": 
     //Do somthing 
     break; 
    } 
    } 

Saludos

+0

(diariamente) – sadi

+0

no consigo, ¿quiere decir que necesita ingresarlo diariamente como enumeración no en "diariamente"? – Marwan

Cuestiones relacionadas