Лучший подход для построения ссылки в JQuery с параметрами - PullRequest
1 голос
/ 16 марта 2010

Очень плохо знакомы с JQuery, MVC и веб-разработкой. Я сейчас пытаюсь сделать это и прошу немного совета:

Я пытаюсь создать фильтр с 4 входными элементами и 1 выходным.

У меня есть 4 выбранных (выпадающих) элемента на моей странице. Как только один из них будет изменен, мне нужно построить href и получить частичное представление с возвращаемыми значениями.

Теперь у меня вопрос, стоит ли мне пытаться встроить href в элемент select или я могу сделать это один раз в jquery, и мне не нужно дублировать код. Как мне это сделать?

Ответы [ 2 ]

1 голос
/ 16 марта 2010

каждый выпадающий список должен быть class="FilterSelect" или что-то в этом роде

при изменении любого из них будет запущен запрос URL-адреса, который необходимо указать в контексте, доступном для всех вариантов выбора.

следующий псевдокод должен дать представление:

$('.FilterSelect').change(function()
{
    var data = {} // you need to get the selected items of each dropdown somehow
    $.get($(this).parents('#FilterContainer').attr('href'), data, function(response)
    {
        $('#ContentArea').html(response);
    }
});

Просто чтобы заметить: вы не должны создавать свой URL в jQuery, потому что логика на стороне клиента не должна касаться правил, необходимых для создания URL, соответствующего маршрутизации на стороне сервера.

.... и также к сведению: я не знаю, является ли это даже допустимым jQuery! .parents('#FilterContainer')

1 голос
/ 16 марта 2010

Вы можете сделать это один раз в jQuery модульным способом, который вы ищете. Что-то вроде:

$('select').bind('change',function(e){
    // Our select changed. Send it's selected option's value onwards...
    getView(this.options[this.selectedIndex].value);
});

А потом, где-то еще:

function getView(url){
    $.ajax( url : '/your/url/' + url, success : function(){ }, error : function(){ });
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...