如何获取表格单元格内的选择下拉列表的值

时间:2016-02-02 14:58:53

标签: javascript java jquery ajax spring-mvc

我有一张桌子(使用dataTables插件)。有一列在每行中都有一个下拉列表select,其中包含多个options。在另一个单元格中,有一个submit按钮(每行)。它由单元格中的<a href />标记表示,但实际提交是通过使用POST而不是href的默认GET的AJAX调用进行的。

当我点击该行的提交按钮时,我试图在下拉列表中检索所选项目的值。但是,在我的java控制台中,它只返回[object Object]。

值得注意的是,我正在尝试解决每个选择下拉列表具有相同ID的事实。

以下是下拉选择行的代码:

<form:select path="adminReviewsLetterStatus.id" id="statusID"><form:option value="">' + full.statusDescriptionState + '</form:option>

<form:options items="${statusList}" itemLabel="statusDescription" itemValue="id"/></form:select>

然后,我试图使用以下javascript获取该下拉列表的值:

var dropDownValue = $(this).prev($("#statusID").find('option:selected').val());

(提交按钮位于单元格后面的单元格中,下拉选择)。

对于提交按钮,我使用以下内容:

<a href="addLetterToRev.htm?letRevTypYrID=' + full.reviewTypeID + '&letterId=' + full.id + '&statusIdParameter=' + dropDownValue + '" title="Add">Add</a>

(其中statusIdParameter是我在控制器中获取的参数。)

当我打印到我的java控制台时,我得到letRevTypYrIDletterId参数的预期值,但我的statusIdParameter参数返回[object Object]

我觉得我很接近让这件事情发挥作用,所以非常感谢任何建议。

AJAX调用非常简单:

$.ajax({
        url: $(this).attr('href'),
        method: 'POST'
});

    return false;

1 个答案:

答案 0 :(得分:0)

问题在于这一行:

var dropDownValue = $(this).prev($("#statusID").find('option:selected').val());

$.prev()会返回一个DOM元素,即您获得的object。正如你所看到的那样,var变得充满了来自$.prev()的所有内容。

而是这样做:

var dropDownValue = $(this).prev(),find("#statusID").val();

$.prev()应根据您的问题获取包含下拉列表的单元格。查找将获得下拉列表,然后$.val()适用于select元素,该元素已填充所选选项(因此请勿在{{1​​}}元素上使用$.val()

此外,您应该在ajax语句中填写网址,而不是使用option中的href属性,当您回顾代码时,它会以这种方式给您造成混淆(甚至虽然它工作正常)。