我目前正在使用ajax为页面的各个部分在Codeigniter中加载我的页面。
但是,当我在其中一个已加载的表单上按提交时,我不会从中获得响应。 就像从未发过的形式一样。我正在考虑要处理的布局,而是返回相同的布局,就像它没有被处理一样。
如何在加载的表单数据上按下提交按钮时,它将被同一个网址拦截,然后将新响应加载到视图中?
一段代码:
$("form").submit(function() {
$.post($(this).attr("action"), $(this).serialize(), function(data) {
$(".main_center").html(data);
});
return false; // prevent normal submit
});
一块html:
<form method="POST" action="/crime">
<input type="hidden" name="crimeinput" id="crimeAction" value="123">
<input type="submit" value="do" name="docrime" id="krimsubmit" style="display:none">
</form>
编辑:
在进一步研究之后,似乎只将crimeInput变量发送到服务器,而不是docrime。如何使其能够发送提交名称?
答案 0 :(得分:1)
根据serialize的文档:
注意:只有“成功控件”被序列化为字符串。 否强> 由于表单未提交,提交按钮值已序列化 使用按钮。表单元素的值包含在 序列化字符串,该元素必须具有name属性。价值来自 复选框和单选按钮(“radio”或“checkbox”类型的输入) 仅在检查时才包括在内。来自文件选择元素的数据 没有序列化。
因此,如果您希望传递该字段,则必须以不同的方式添加它,可能是另一个隐藏的输入。