2011-04-27 87 views
11

我有一滴往下注冊這樣的jQuery插件:如何選擇jQuery下拉val()AND觸發事件?

$('#country').linkToStates('#province'); 

我手動選擇下拉是這樣的:

$('#country').val('United States'); 

但onchange事件不會觸發.linkToStates()這是之前註冊的。所以它看起來像val()只改變下拉位置,但實際上並不改變onchange事件。誰能幫忙?

順便說一句,這是如果它可以幫助註冊的代碼:

$.fn.extend({ 
     linkToStates: function(state_select_id) { 
     $(this).change(function() { 
     var country = $(this).attr('value'); 
     $(state_select_id).removeOption(/.*/); 
     switch (country) { 
      case 'Canada': 
      $(state_select_id).addOption(canadian_provinces, false); 
      break; 
      case 'United States': 
      $(state_select_id).addOption(us_states, false); 
      break; 
      default: 
      $(state_select_id).addOption({ '' : 'Please select a Country'}, false); 
      break; 
     } 
     }); 
    } 
    }); 

回答

22

試試這個:

$('#country').val('United States').trigger('change'); 

甚至

$('#country').val('United States').change(); 

你可以閱讀更多關於.trigger()here.change()here

+0

不知何故,在不觸發更改事件每次。這是我的代碼。 'var jQuery2 = jQuery.noConflict(); \t jQuery2('#shipping_method_0')。val('flat_rate')。change();'。你能幫忙嗎? – Vidhi 2014-11-12 05:52:03

0

你可以只把你的代碼調用onChanged到一個單獨的函數,然後調用它,你改變數值後。

相關問題