2013-02-20 28 views
22

Ho una funzione che sull'evento change esegue le azioni post.Jquery esegue l'evento onchange on onload

$("select#marca").change(function(){ 
    var marca = $("select#marca option:selected").attr('value'); 
    $("select#modello").html(attendere); 
$.post("select.php", {id_marca:marca}, function(data){ 
     $("select#modello").html(data); 
    }); 
}); 

Vorrei eseguire questa funzione evento onload. È possibile? C'è un buon modo per farlo?

+0

Vuoi dire attivare la funzione del carico? hai provato: $ ("seleziona # marca"). change(); – cernunnos

risposta

42

Basta mettere in una funzione, quindi chiamalo anche su documento pronto, in questo modo:

$(function() { 
    yourFunction(); //this calls it on load 
    $("select#marca").change(yourFunction); 
}); 

function yourFunction() { 
    var marca = $("select#marca option:selected").attr('value'); 
    $("select#modello").html(attendere); 
    $.post("select.php", {id_marca:marca}, function(data){ 
     $("select#modello").html(data); 
    }); 
} 

oppure basta richiamare change al caricamento della pagina?

$(function() { 
    $("select#marca").change(); 
}); 
+0

Ho provato $ (window) .load (function() { $ (function() { $ ("seleziona # marca"). Change(); }), ma l'evento non viene eseguito .. –

+1

@PaoloRossi' $ (function() 'will ** già eseguito sul caricamento della pagina ** non lo avvolge in un' $ (window) .load' e assicurati di aver registrato l'evento 'change' prima di provare a lanciare' .change' – mattytommo

+0

Perfetto! Grazie mille! –

14

Se si aggiunge .change() alla fine si chiamerà subito dopo essere stato legato:

$(function() { 
    $("select#marca").change(function(){ 
     var marca = $("select#marca option:selected").attr('value'); 
     $("select#modello").html(attendere); 
    $.post("select.php", {id_marca:marca}, function(data){ 
      $("select#modello").html(data); 
     }); 
    }).change(); // Add .change() here 
}); 

o modificare la richiamata ad una funzione reale e chiami:

function marcaChange(){ 
    var marca = $("select#marca option:selected").attr('value'); 
    $("select#modello").html(attendere); 
$.post("select.php", {id_marca:marca}, function(data){ 
     $("select#modello").html(data); 
    }); 
} 

$(function() { 
    $("select#marca").change(marcaChange); 
    marcaChange(); 
}); 
14

modo molto semplice ad appena concatenare un altro evento .Per passare() per la fine del vostro sui cambiamenti funzione come questa:

$("#yourElement").change(function(){ 
    // your code here 
}).change(); // automatically execute the on change function you just wrote 
1

L'altro modo di fare

$("select#marca").val('your_value').trigger('change'); 
1

Per chiamare onload, puoi provare jQuery:

$(document).ready(function(){ 
onchange();// onload it will call the function 
    }); 

Scrivi la funzione onchange come questo, quindi questo sarà chiamato quando si verifica onchange,

function onchange(){ 
    var marca = $("select#marca option:selected").attr('value'); 
    $("select#modello").html(attendere); 
    $.post("select.php", {id_marca:marca}, function(data){ 
    $("select#modello").html(data); 
});