динамически генерировать строку запроса для гиперссылки на основе значений поля - PullRequest
2 голосов
/ 02 декабря 2011

У меня есть страница поиска ASP.Net MVC. Это довольно стандартный список, но в нем есть несколько раскрывающихся списков, которые фильтруют результаты. Эти выпадающие списки и тег ввода текста для поиска заключены в тег формы.

У меня также есть гиперссылка «Добавить новую [сущность]». Гиперссылка переходит в представление «Создать».

Дело в том, что выпадающие списки из формы поиска также определяют значения некоторых полей в представлении «Создать». Поэтому мне нужно передать их значения в форму создания.

Самый простой способ сделать это (насколько я знаю) - передать соответствующие значения в строку запроса Добавить новую гиперссылку.

Я могу добиться этого, меняя значение HREF моей ссылки каждый раз, когда меняется раскрывающийся список. Но это включает в себя несколько обработчиков событий, и к некоторым выпадающим спискам уже привязаны другие обработчики событий. (Между двумя выпадающими меню есть зависимость, только для того, чтобы сделать вещи более сложными.)

Что я хотел бы сделать, так это изменить строку запроса & mdash; собрать текущие значения выпадающих списков и изменить их & mdash; между кликом по гиперссылке и фактическим исполнением гиперссылки. Или подражать этому.

Возможно ли это? И это хорошая идея, или я должен просто придерживаться нескольких обработчиков событий, меняющих HREF?

Ответы [ 2 ]

4 голосов
/ 02 декабря 2011

почему бы не добавить обработчик событий к вашей ссылке, создать ссылку и затем выполнить ее?

$("a").click(function(event) {
  event.preventDefault();

  var url = "www.whatever.com/";

  var addedVars = "?firstVar=" + $('#dropdown1').val() + "&secondVar=" + $('#dropdown2').val();

  window.location = url + addedVars;
});
1 голос
/ 02 декабря 2011

Если вы можете сделать кнопку «Добавить новый» кнопкой, вы можете использовать форму с двумя независимыми кнопками отправки, каждая из которых вызывает свое действие.

Техника описана в этом блоге http://blog.ashmind.com/2010/03/15/multiple-submit-buttons-with-asp-net-mvc-final-solution/

Что-то вроде:

@using (Html.BeginForm("Action", "Post")) {

  <input type="submit" name="Search" value="Search" />
  <input type="submit" name="AddNew" value="Add New" />
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...