制作onchange事件也会运行到pageload

时间:2010-02-24 03:04:13

标签: javascript jquery onload

我在jQuery中设置了一些onchange事件,用于根据在另一个选择下拉列表中选择的内容填充选择下拉框。

我还需要这些也可以在页面加载上运行,以便根据页面加载时第一个选择框的内容返回结果(否则我会以空的选择框结束)。我已经浏览了互联网,但无法找到任何符合我想做的事情

我的Jquery代码是

        $(function(){


    //Get Contacts for Company

      $("select#ContactCompanyId").change(function(){
        var url = "contactList/" + $(this).val() + "";
        $.getJSON(url,{id: $(this).val(), ajax: 'true'}, function(j){
          var options = '';
          $.each(j, function(key, value){
        options += '<option value="' + key + '">' + value + '</option>';
          })
          $("select#QuoteContactId").html(options);
        })
      })

    //Get list of product Categories

      $("select#ProductCategory").live('change', function(){
        var url = "productList/" + $(this).val() + "";
        var id = $(this).attr('name');
        $.getJSON(url,{id: $(this).val(), ajax: 'true'}, function(j){
          var options = '';
        options += '<option value="0">None</option>';
          $.each(j, function(key, value){
        options += '<option value="' + key + '">' + value + '</option>';
          })
          $("select#QuoteItem" + id + "product_id").html(options);
        })
      })

    //Function to add product data into the form

      $(".Product").live('change', function(){
        var url = "productData/" + $(this).val() + "";
        var id = $(this).attr('title');
        $.getJSON(url,{id: $(this).val(), ajax: 'true'}, function(j){
        $("#QuoteItem" + id + "name").val(j['Product']['name']);
        $("#QuoteItem" + id + "price").val(j['Product']['price']);
        $("#QuoteItem" + id + "description").val(j['Product']['description']);
        })
      })
    })

提前感谢您的帮助

2 个答案:

答案 0 :(得分:9)

您可以在将事件与.trigger()绑定后立即触发事件:

$("select#ContactCompanyId").change(function(){
    var url = "contactList/" + $(this).val() + "";
    $.getJSON(url,{id: $(this).val(), ajax: 'true'}, function(j){
      var options = '';
      $.each(j, function(key, value){
    options += '<option value="' + key + '">' + value + '</option>';
      })
      $("select#QuoteContactId").html(options);
    });
  }).trigger('change');

答案 1 :(得分:4)

$(document).ready(function() {  
    $('#your_select_id').change();
});

这将激活您的选择的更改事件及其当前值。它等同于用户选择当前值,它将触发附加到它的任何事件,这些事件将从onchange事件中触发。