为什么ajax`data`会导致此代码中断?

时间:2015-08-06 14:36:10

标签: javascript jquery datatables

我是JavaScript的新手,但我已经编写了一些代码,据我所知,格式正确但是当我在其中添加data元素时会破坏代码,但我无法理解为什么按照jQuery文档,我正确使用.val()等。

<script>
$( "#button1" ).click(function() {
    $('#table').DataTable( {
        "ajax": {
                "data": [
                    "date1": $( "#inputDate1" ).val(),
                    "date2": $( "#inputDate2" ).val(),
                ],
                "url": "/server_processing/database.php",
                "type": "POST"
                },
        "serverSide": true
    } );
} );
</script>

2 个答案:

答案 0 :(得分:3)

数组文字[]包含以逗号分隔的项目列表。

对象文字{}包含逗号分隔的键:值对列表。

在数组文字中有一个对象文字的正文。

在数组或对象文字中使用尾随逗号,虽然在某些版本的JS中有效,但可能会有问题。所以也删除它。

            "data": {
                "date1": $( "#inputDate1" ).val(),
                "date2": $( "#inputDate2" ).val()
            },

答案 1 :(得分:2)

你有一个不属于那里的逗号。如下所述,另一个问题是数组不能有关联键。

<script>
$( "#button1" ).click(function() {
    $('#table').DataTable( {
        "ajax": {
                "data": {
                    "date1": $( "#inputDate1" ).val(),
                    "date2": $( "#inputDate2" ).val() // No , here
                },
                "url": "/server_processing/database.php",
                "type": "POST"
                },
        "serverSide": true
    } );
} );
</script>