2015-10-12 2 views
0

Кажется, что код верен!Rails ajax Динамический выбор

так, кто-то мог бы сэкономить любую информацию, почему вторая (подкатегории) частичная не обновлялась? Спасибо-х

Я положил на ЯШ:

$(document).ready(function() { 
    return $(document).on('click', "input[type='radio'][name='product[gender_id]']", function(evt) { 
    return $.ajax('update_category_select', { 
     type: 'GET', 
     dataType: 'script', 
     data: { 
     gender_id: $("input[type='radio'][name='product[gender_id]']:checked").val() 
     }, 
     error: function(jqXHR, textStatus, errorThrown) { 
     return console.log("AJAX Error: " + textStatus); 
     }, 
     success: function(data, textStatus, jqXHR) { 
     return console.log("Dynamic state select OK!"); 
     } 
    }); 
    }); 

    return $(document).on('change', '#categories_select', function(evt) { 
    return $.ajax('update_subcategory_select', { 
     type: 'GET', 
     dataType: 'script', 
     data: { 
     category_id: $("#categories_select option:selected").val() 
     }, 
     error: function(jqXHR, textStatus, errorThrown) { 
     return console.log("AJAX Error: " + textStatus); 
     }, 
     success: function(data, textStatus, jqXHR) { 
     return console.log("Dynamic state select OK!"); 
     } 
    }); 

    }); 
}); 

Первый частичный:

$("#categories_select").empty().append("<%= escape_javascript(render(:partial => @categories)) %>") 

Если firt парциальное обновляется обновляют второй частичный

Второй частичный :

$("#subcategories_select").empty().append("<%= escape_javascript(render(:partial => @subcategories)) %>") 

Продукты Контроллер

@catagories = Category.where("gender_id = ?", params[:gender_id]) 
    respond_to do |format| 
     format.js 
    end 
    end 


def update_subcategory_select 


    @subcategories = Subcategory.where("category_id = ?", params[:category_id]) 
    respond_to do |format| 
     format.js 
    end 
    end 
+0

Где вы называете частичные обновления? –

+0

@ RicchPeck. спасибо за ваш интерес, я добавил в контроллер продукта. Я редактировал вопрос сейчас. def update_category_select –

ответ

0

return используется внутри функции, чтобы возвращать значение/выражение и следующие предложения не выполняются.

В вашем JavaScript у вас есть что-то вроде:

function(){ //Document ready 
    return 1; //Here you on click 
    return 2; //Here you on change 
} 

Так вернуть 2 никогда не вызывается. В вашем случае обработчик событий для «change» никогда не прикрепляется, поэтому подкатегории не обновляются.

Просто удалите все return в вашем javascript-коде.

+0

большое спасибо @Aguardientico. –

Смежные вопросы