Вопрос по Drupal.behaviors.

Главные вкладки

Аватар пользователя doctorx doctorx 14 июля 2010 в 11:55

возникли сложности с обновлением елемнта.
Хочу что бы при выборе региона из списка номер региона добавлялся в path_autocomplete

Для этого в уберскрате взял скрипт

Drupal.behaviors.ucCountrySelect = function(context) {
  $('select[id$=-country]:not(.ucCountrySelect-processed)', context).addClass('ucCountrySelect-processed').change(
    function() {
      uc_update_zone_select(this.id, '');
    }
  );
}

/**
 * Update the zone select element with new options.
 */

function uc_update_zone_select(country_select, default_zone) {
  var zone_select = country_select.substr(0, country_select.length - 8) + '-zone';

  var options = { 'country_id' : $('#' + country_select).val() };

  $('#' + zone_select).parent().siblings('.zone-throbber').attr('style', 'background-image: url(' + Drupal.settings.basePath + 'misc/throbber.gif); background-repeat: no-repeat; background-position: 100% -20px;').html('    ');

  $.post(Drupal.settings.basePath + '?q=uc_js_util/zone_select', options,
         function (contents) {
           if (contents.match('value="-1"') != null) {
             $('#' + zone_select).attr('disabled', 'disabled');
           }
           else {
             $('#' + zone_select).removeAttr('disabled');
           }
           $('#' + zone_select).empty().append(contents).val(default_zone).change();
           $('#' + zone_select).parent().siblings('.zone-throbber').removeAttr('style').empty();
         }
  );
}

и немного его переписал

Drupal.behaviors.ucZoneSelect = function(context) {
  $('select[id$=-zone]:not(.ucZoneSelect-processed)', context).addClass('ucZoneSelect-processed').change(
    function() {
      uc_update_autocomplete_city(this.id, '');
    }
  );
}

/**
 * Update the city path autocomplete element with new options.
 */

function uc_update_autocomplete_city(zone_select, default_zone) {
  var city_textfield = zone_select.substr(0, zone_select.length - 5) + '-city-autocomplete';
  var base_url = window.location.protocol +'//' +window.location.host+'/uc_chcity/autocomplete/';
  $('#'+city_textfield).val(base_url+$('#'+zone_select+' option:selected').val());
  //alert($('#'+city_textfield).val(base_url+$('#'+zone_select+' option:selected').val()));
}

Этот код по идее должен подставлять номер региона из списка
сюда:

<input type="hidden" disabled="disabled" value="http://drupal/uc_chcity/autocomplete/138" id="edit-panes-delivery-delivery-city-autocomplete" class="autocomplete autocomplete-processed">
То есть каждый раз при смене регион будет меняться value="http://drupal/uc_chcity/autocomplete/region number"

Проблема номер меняется только при полной перегрузке страницы.
Как сделать, что бы смена номера происходила сразу ?