2013-02-20 2 views
22

У меня есть функция, которая при изменении события запускает действия post.Jquery execute onchange event 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); 
    }); 
}); 

Я хотел бы выполнить эту функцию при загрузке. Является ли это возможным? Есть ли хороший способ сделать это?

+0

Вы имеете в виду вызвать функцию на нагрузке? вы попробовали: $ ("select # marca"). change(); – cernunnos

ответ

42

Просто поместите его в функции, затем назовите его на готовом документе, например:

$(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); 
    }); 
} 

или просто запустите change на загрузку страницы?

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

Я попытался $ (window) .load (function() { $ (function() { $ ("select # marca"). Change(); }), но событие не запускается .. –

+1

@PaoloRossi ' $ (function() 'будет уже выполняться при загрузке страницы ** не обертывайте его внутри' $ (window) .load' и убедитесь, что вы зарегистрировали событие 'change', прежде чем пытаться запустить' .change' – mattytommo

+0

Отлично! Большое спасибо! –

14

Если добавить .change() в конце концов, это будет называться сразу после того, как связаны:

$(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 
}); 

Или изменить функцию обратного вызова к фактической функции и называем это:

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

Действительно простой способ это просто цепную другой .Кнопкой() событие до конца вашего на изменение функции, как это:

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

Другой способ сделать

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

Для звонка onload, вы можете попробовать jQuery:

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

Написать OnChange функцию, как это, так что это будет вызываться, когда 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); 
});