Как выбрать родительское выпадающее выбранное значение - PullRequest
0 голосов
/ 07 декабря 2011

У меня есть выпадающий список для цикла. У меня также есть кнопка загрузки PDF в этом цикле. Я хочу иметь возможность нажать на эту кнопку загрузки PDF, а затем в javascript выберите выбранное значение в раскрывающемся списке, который в конечном итоге запустит функцию и найдет правильное местоположение п.п.м., связанное с выбранным значением.

EDIT:

 <table>
    <tr>
      <td></td>
      <td>
        @Html.DropDownList("Dropdown", Model.Dropdowns[i], new { id = Model.Industry[i].Id, @class = "dropdown"})
     </td>
     </tr>
     <tr>
       <td></td>
       <td>
          <a href="#" class="DownloadPDF"> Download PDF</a>                                                   
       </td>

<script type="text/javascript">
$(document).ready(function () {

   $(".DownloadPDF").click(
        function () {
            var selected = $(this).parent().find(".dropdown option:selected").val();
            alert(selected);
        }
    );
});

этот код возвращает только предупреждение о неопределенности

Ответы [ 3 ]

1 голос
/ 07 декабря 2011

Лучше подписаться на change событие вашего выпадающего:

$(document).ready(function() {
    $('select.dropdown').change(function() {
       var $tr = $(this).closest('tr');
       var $btn = $tr.next().find('a.DownloadPDF');
       $btn.attr('href', 'mydownloadhandler?pdf' + $(this).find('option:selected').val()); 
    });
});

Код: http://jsfiddle.net/b4Dxv/1/

В любом случае, если мы начнем с кнопки:

$(document).ready(function () {
   $(".DownloadPDF").click(function () {
            var selected = $(this).closest('tr').prev().find(".dropdown option:selected").val();
            alert(selected);
        }
    );
});
0 голосов
/ 07 декабря 2011

Я так понимаю, выпадающий список и ссылка находятся в разных ячейках таблицы, но в одной строке?

То, что вы здесь делаете, проверяет только родитель ссылки.Родителем ссылки является элемент td.Вам нужно найти родительский элемент tr.Попробуйте это:

var selected = $(this).closest('tr').find(".dropdown option:selected").val();
0 голосов
/ 07 декабря 2011

Может быть без родителя:

var selected = $(".dropdown option:selected", $(this).parent()).val();
...