开发者社区> 问答> 正文

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的值是空,不论输入什么值都是这样,求大神解答

展开
收起
小旋风柴进 2016-05-27 08:46:53 2807 0
1 条回答
写回答
取消 提交回答
  • 你那个是静态的当然是空了,当在document.ready时执行时,#test的值本来就是空。
    你应该这样,改成动态的:

    data: function(){
        return {
            "name":document.getElementById('test').value
        }
    }
    2019-07-17 19:16:57
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载