Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.10.2013, 02:13
Интересующийся
Отправить личное сообщение для carroty Посмотреть профиль Найти все сообщения от carroty
 
Регистрация: 04.10.2013
Сообщений: 10

Не правильно работает html() ?
Здравствуйте форумчане!
Никогда не задавала вопросов на этом форуме, всегда находила ответы, но видимо пришел час Х.
При добавлении инфы в одной форме, должен обновляться select в другой форме, на jquery делаю так
$('#new_city').submit(function(){
            var rel = $(this).attr('data-rel');
            var country_id = $(this).val();
            
            $.ajax({
                type: 'post',
                url: $('#new_city').attr('action'),
                data: $('#new_city').serialize(),
                success: function(result)
                {
                    var options = '';
                     $(result.cities).each(function(){
                        
                    options += '<option value="' + $(this).attr('city_id') + '">' +  $(this).attr('city_ru') + '</option>';                   
                     });
                   $('.city_1[data-rel="' + rel + '"]').html(options); 
                  // console.log(options);
                }
            })
            return false;
        });

html(options) вроде бы должен добавлять новый элемент в select после удачной отправки данных, проверяю переменную options в консоли, да новый список с новым элементом сформировался, но в самом select'e city этот новый элемент не отображается, приходится заново клацать по списку стран, чтобы обновился список городов. В чем может быть проблема? Благодарю за внимание!
html-код формы, в которой должен обновляться select
<form id="timetable_city" name="timetable_city" action="/admin/timetable/add-timetble-city" method="post">
<input type="hidden" name="timetable_id" value="" id="timetable_id">
<select name="country_id_1" id="country_id_1" data-rel="1" class="country_1 left_10 ">
    <option value="0">-Выберите страну-</option>
    <option value="1">Австрия</option>
    <option value="2">Беларусь</option>
    <option value="3">Бельгия</option>
</select>
<select name="city_id_1" id="city_id_1" data-rel="1" class="city_1 ">
    <option value="0">-Выберите город-</option>
</select>
<a href="#add_city" class="add_city " data-toggle="modal" data-rel="1" title="Добавить город"><i class="icon-plus-sign"></i></a>
<select name="bus_station_1" id="bus_station_1" data-rel="1" class="bus_station_1 ">
    <option value="0">-Место прибытия-</option>
</select>
<select name="country_id_2" id="country_id_2" data-rel="2" class="country_1 left_10 ">
    <option value="0">-Выберите страну-</option>
    <option value="1">Австрия</option>
    <option value="2">Беларусь</option>
    <option value="3">Бельгия</option>
</select>
<select name="city_id_2" id="city_id_2" data-rel="2" class="city_1 ">
    <option value="0">-Выберите город-</option>
</select>
<a href="#add_city" class="add_city " data-toggle="modal" data-rel="1" title="Добавить город"><i class="icon-plus-sign"></i></a>
<select name="bus_station_2" id="bus_station_2" data-rel="2" class="bus_station_1 ">
    <option value="0">-Место прибытия-</option>
</select>
<!- и таких select'ов страна-город-место в форме 30 штук ->
</form>

Последний раз редактировалось carroty, 04.10.2013 в 12:47.
Ответить с цитированием
  #2 (permalink)  
Старый 04.10.2013, 10:34
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от carroty
$('#new_city').submit(function(){
А можно посмотреть эту форму?

Беларусь пишется через "а".
Ответить с цитированием
  #3 (permalink)  
Старый 04.10.2013, 12:49
Интересующийся
Отправить личное сообщение для carroty Посмотреть профиль Найти все сообщения от carroty
 
Регистрация: 04.10.2013
Сообщений: 10

[quote=BETEPAH;275030]А можно посмотреть эту форму?
Конечно можно
<form id="new_city" name="new_city" action="/admin/timetable/add-city" method="post">
<select name="country_id" id="country_id">
    <option value="0">-Выберите страну-</option>
    <option value="1">Австрия</option>
    <option value="2">Беларусь</option>
    <option value="3">Бельгия</option>
</select>
<input type="text" name="city_ru" id="city_ru" value="" placeholder="Город рус.">
<input type="text" name="city_en" id="city_en" value="" placeholder="Город англ.">
<input type="submit" name="submit" id="submit" value="Добавить новый город" class="btn btn-primary">
<button name="button" id="button" type="button" class="btn button_close" data-dismiss="modal" aria-hidden="true">Закрыть</button></form>

Вы правы, Беларусь
Ответить с цитированием
  #4 (permalink)  
Старый 04.10.2013, 13:03
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

тогда непонятно начало скрипта:
$('#new_city').submit(function(){
            var rel = $(this).attr('data-rel');
            var country_id = $(this).val();

куда у Вас показывает this?
Ответить с цитированием
  #5 (permalink)  
Старый 04.10.2013, 13:29
Интересующийся
Отправить личное сообщение для carroty Посмотреть профиль Найти все сообщения от carroty
 
Регистрация: 04.10.2013
Сообщений: 10

Сообщение от BETEPAH Посмотреть сообщение
тогда непонятно начало скрипта:
$('#new_city').submit(function(){
            var rel = $(this).attr('data-rel');
            var country_id = $(this).val();

куда у Вас показывает this?
В первой форме есть ссылки с атрибутами data-rel="1", data-rel="2" и т.д. при клике на которые открывается всплывающая форма для добавления нового города, data-rel использую для того, чтобы узнать в какой именно select city возвращать новый список городов, т.к. таких select city в форме 30 штук. Переменная country_id на данный момент не используется, в будущем будет использоваться
Ответить с цитированием
  #6 (permalink)  
Старый 04.10.2013, 13:35
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

carroty, Вы можете ответить на вопрос?
Ссылка на какой элемент находится в this, в выделенном куске кода? Можете поставить там консоль.лог и посмотреть, что в итоге попадает в rel?
Ответить с цитированием
  #7 (permalink)  
Старый 04.10.2013, 13:41
Интересующийся
Отправить личное сообщение для carroty Посмотреть профиль Найти все сообщения от carroty
 
Регистрация: 04.10.2013
Сообщений: 10

в rel = $(this).attr('data-rel') попадает Undefined
логично, в скрипте я обрабатываю форму, в которой и близко нет data-rel и скрипт не знает куда возвращать результат, тогда как указать скрипту куда именно надо возвращать результат?

Последний раз редактировалось carroty, 04.10.2013 в 13:53.
Ответить с цитированием
  #8 (permalink)  
Старый 04.10.2013, 14:02
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от carroty
в скрипте я обрабатываю форму, в которой и близко нет data-rel
ну, вот! Наконец-то.
Вопрос не в том, куда возвращать, а в том, откуда брать. Замените this в скрипте на нужный элемент.
Ответить с цитированием
  #9 (permalink)  
Старый 04.10.2013, 14:12
Интересующийся
Отправить личное сообщение для carroty Посмотреть профиль Найти все сообщения от carroty
 
Регистрация: 04.10.2013
Сообщений: 10

Как все просто оказалось! Спасибо вам, Человек!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт правильно работает только один раз, после начинает выдавать ошибку. xodock Events/DOM/Window 2 23.07.2012 13:04
Не правильно работает прокрутка, подскажите как сделать правильно? denfer12 Общие вопросы Javascript 0 09.05.2012 00:34
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
Не работает код внутри циклов DZHETIGAPA Events/DOM/Window 1 21.06.2011 01:03
Safari + ajax некорректно работает, а в других работает demi AJAX и COMET 35 15.07.2009 14:11