如何获取datatable中使用的选择下拉列表的值

时间:2015-05-22 17:17:02

标签: jquery datatables jquery-datatables

我正在使用jQuery Datatables插件,想要获取用户输入的选择下拉列表的值并使用它,然后再将其重置为默认值。

HTML

<td>
    <form id="selectValue">
        <select class="priorityList" name="priorityList">
            <option value="">Select Priority</option>
            <option value="1">Low</option>
            <option value="2">Medium</option>
            <option value="3">High</option>
        </select>
    </form>
</td>

此特定单元格显示在表格的每一行上,用户可以在每一行上选择值。

2 个答案:

答案 0 :(得分:1)

<td>
   <form id="selectValue">
         <select class="priorityList" name="priorityList1">
                 <option value="">Select Priority</option>
                 <option value="1">Low</option>
                 <option value="2">Medium</option>
                 <option value="3">High</option>
         </select>
   </form>
</td>
<td>
   <form id="selectValue">
         <select class="priorityList" name="priorityList2">
                 <option value="">Select Priority</option>
                 <option value="1">Low</option>
                 <option value="2">Medium</option>
                 <option value="3">High</option>
         </select>
   </form>
</td>

JS

$('select[name=priorityList1]').val()//in some cases, returns null
$('#priorityList1').val()//method 2 this returns null some times

$('#priorityList1 option:selected').val()//this works everytime
//for second priority list
$('select[name=priorityList2]').val()//in some cases, returns null
$('#priorityList2').val()//method 2 this returns null some times

$('#priorityList2 option:selected').val()//this works everytime

 //to change names and Id through Jquery

 $("#" + id).attr('id', 'priority' + counterIndex)
            .attr('name', 'prioty' + counterIndex);

显然你尝试了上述内容并且无法正常工作。

  • 确保您只有一个名为priorityList的选项
  • 确保您的ID是唯一的

  • 只有两个,三个,四个或更多单选按钮可以使用相同的名称,其余按钮不能:explanation

  • 如果您要自动生成此表单,假设用户输入新行并且您需要自动生成ID,您可以保留用户条目的计数并使用Js函数更改名称/ ID必须自己写这个。 Here is an example

答案 1 :(得分:0)

这会动态附加一个事件处理程序,所以当select选项被更改时,它会将select的值设置为一个可以使用的变量,然后它会将值重置回第一个选项。这适用于任意数量的选择框(请参阅小提琴)。这可以根据需要进行配置:

<强> JS

$("#table select").on("change", function(){
    // Get the value from the select box
    var value = $(this).val();

    // Do what you need to do with value        
    alert(value);

    // Reset the select back to the first option
    $(this).val("default");
});

这是一个JSFiddle,它显示了这一点:https://jsfiddle.net/wk5o1w4u/1/