在用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
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。