2015-02-23 2 views
-2

проблема заключается в том, что jQuery('#form-row-rapper-price_bin').hide() не запускаются, за исключением случаев, когда я выбираю другое значение из "form_auction_type" и возвращается к более старому значению.jQuery on ready and change

я нужен скрипт для запуска при загрузке страницы, а также при изменении значений из выпадающего списка «form_auction_type»

jQuery('#form_auction_type').change(function(e) { 
    if(jQuery('#form_auction_type').val() == '2'){ 
     jQuery('#form-row-rapper-price_bin').show(); 
     jQuery('#form-row-rapper-price_current').hide(); 
     jQuery('#form-row-rapper-price_reserve').hide(); 
    } else { 
     jQuery('#form-row-rapper-price_bin').hide(); 
     jQuery('#form-row-rapper-price_reserve').show(); 
     jQuery('#form-row-rapper-price_current').show(); 
    } 
}); 

, чтобы сделать его лил немного легче изменить эту строку из

jQuery('#form_auction_type').change(function(e) { 

к

jQuery('#form_auction_type').ready(function(e) { 

фиксирует мою проблему, но выпадающее меню больше не работает!

+1

Просьба представить соответствующую HTML. Недостаточно информации, чтобы ответить на этот вопрос. – Popnoodles

ответ

2

Просто смените смену при загрузке страницы с помощью .trigger('change'). Это приведет к запуску функции anon.

jQuery('#form_auction_type').change(function(e) { 
    if (jQuery('#form_auction_type').val() == '2') { 
     jQuery('#form-row-rapper-price_bin').show(); 
     jQuery('#form-row-rapper-price_current').hide(); 
     jQuery('#form-row-rapper-price_reserve').hide(); 
    } else { 
     jQuery('#form-row-rapper-price_bin').hide(); 
     jQuery('#form-row-rapper-price_reserve').show(); 
     jQuery('#form-row-rapper-price_current').show(); 
    } 
}).trigger('change'); 
+0

Я хочу скрыть «form-row-rapper-price_bin», если «form_auction_type» = 1, что является значением по умолчанию при загрузке страницы. извините, что ваш метод не работал. –

+1

Тогда вы не указали достаточно информации. Укажите свой HTML. – Popnoodles

+0

Зачем вам больше HTML? моя проблема связана со сценарием выше, и, как я сказал, переключение выпадающего меню устраняет проблему, как я могу запустить скрипт на загрузку страницы? –

0

Просто напишите функцию и вызовите ее с обоих мест. Вы даже можете уложить ее в ready обратного вызова, так что это не является глобальным (если вы не используете функцию рамочный):

jQuery(function() { 
    function updateDisplay() { 
     if(jQuery('#form_auction_type').val() == '2'){ 
      jQuery('#form-row-rapper-price_bin').show(); 
      jQuery('#form-row-rapper-price_current').hide(); 
      jQuery('#form-row-rapper-price_reserve').hide(); 
     } else { 
      jQuery('#form-row-rapper-price_bin').hide(); 
      jQuery('#form-row-rapper-price_reserve').show(); 
      jQuery('#form-row-rapper-price_current').show(); 
     } 
    } 

    updateDisplay(); 
    jQuery('#form_auction_type').change(updateDisplay); 
});