首页 > datatables插件ajax发送post数据的问题

datatables插件ajax发送post数据的问题

在用datatables插件的时候碰到的问题,想用button onclick时间触发table的reload,从而将一个input元素中用户输入的内容post到后台,以下是我写的简单的例子
<html>
<head>

<!-- jQuery -->
<script type="text/javascript" charset="utf8" src="jquery.js"></script>

<!-- DataTables -->
<script type="text/javascript" charset="utf8" src="jquery.dataTables.js"></script>

<script>
$(document).ready( function () {

$('#table_id').DataTable({
    "processing": true,
    "serverSide": true,
    "ajax": {
    url:"http://localhost/mmm",
    type:"POST",
    data:{"name":document.getElementById('test').value}
    /*data:{"name":"xdf"}*/
    }
});

} );
</script>
</head>
<body>
<input type="text" id="test">
<button onclick='var
table=$("#table_id").DataTable();table.ajax.reload();'>check</button>

Column 1 Column 2
Row 1 Data 1 Row 1 Data 2
Row 2 Data 1 Row 2 Data 2

</body></html>

在chrome中我能看到javascript发出的http报文,当用注释中的data:{"name":"xdf"}时,http报文中确实有xdf这个值,然而换成data:{"name":document.getElementById('test').value}的时候,报文中name的值是空,不论输入什么值都是这样,求大神解答


你那个是静态的当然是空了,当在document.ready时执行时,#test的值本来就是空。
你应该这样,改成动态的:

data: function(){
    return {
        "name":document.getElementById('test').value
    }
}
【热门文章】
【热门文章】