获取Jquery中单击的行选项下拉菜单值

时间:2014-05-08 07:08:10

标签: javascript jquery html asp.net-mvc asp.net-mvc-3

我在一张表中有大约15行,每行包含一个下拉菜单。这是我的下拉列表的代码

<td headers="Vehicles">
<select id = "Dropdown">

    <%if (ViewData.Model.Details.ElementAt(i).vehicle == "Car")%>
    <%{%>
      <option value="car" selected="selected">car</option>
      <option value="Bus">Bus</option>
      <option value="Lorry">Lorry</option>

    <%} %>
    <%else if (ViewData.Model.Details.ElementAt(i).vehicle == "Bus")%>
    <%{%>
       <option value="car" >car</option>
      <option value="Bus" selected="selected">Bus</option>
      <option value="Lorry">Lorry</option>

    <%} %>
    <%else if (ViewData.Model.Details.ElementAt(i).vehicle == "Lorry")%>
    <%{%>
     <option value="car">car</option>
      <option value="Bus">Bus</option>
      <option value="Lorry" selected="selected">Lorry</option>

    <%} %>

    </select>
</td>

现在,如果我点击第4行,我需要在第4行中选择的选项值。

当我点击一行的第三列时,我正在阅读第一列文本。像这样我需要阅读行中选择的选项。

     $('#Requests td:nth-child(3)').bind('click', function () {

            var id = $(this).parents('tr:first').find('td:eq(0)').text();
});

4 个答案:

答案 0 :(得分:2)

你可以这样做:

$('#Requests td:nth-child(3)').bind('click', function () {

var id = $(this).parents('tr:first').find('td:eq(0)').text();
var selected =  $(this).parents('tr:first').find('td:eq(0)').find('select#Dropdown').val();
});

您应该按照建议使用on

 $('#Requests td:nth-child(3)').on('click', function () {

    var id = $(this).parents('tr:first').find('td:eq(0)').text();
    var selected =  $(this).parents('tr:first').find('td:eq(0)').find('select#Dropdown').val();
    });

答案 1 :(得分:1)

试试这个:

$('#Requests td').on('click', function () {
   var id = '';
   var ddVal = $(this).closest('tr').find('select :selected').val();
   if($(this).index() === 2){
     var id = $(this).closest('tr').find('td:eq(0)').text();
   }
   console.log(id);
   console.log(ddVal);
});

在您的代码中我假设您没有为多个select下拉元素应用相同的ID。如果是这种情况,那么我会说这不是有效的HTML标记,您必须为选择元素提供不同的ID,或者您可以将id属性更改为class

答案 2 :(得分:0)

首先,您不能在多个地方对id标记使用相同的select,因此请将其更改为class

class="Dropdown"

您需要在下拉列表中找到所选值,如下面的代码

$("#tableId tr").click(function() {
    var selectedOption =  $(this).find(".Dropdown").val();
    alert(selectedOption );
});

答案 3 :(得分:0)

只需将一个课程分配到下拉菜单

即可获得

参见jsfiddle

http://jsfiddle.net/3bgQ9/1/

$(function(){
$(".sel").change(function(){
    alert($(this).val());
});

});