jquery - Cakephp 3.6:通过 ajax 提交表单
问题描述
我有这个表格:
<?php
// Start a modal with a title, default value for 'close' is true
echo $this->Modal->create("My Modal Form", ['id' => 'exampleFormModalzz', 'close' => false]) ;
echo $this->Form->create($task, ['id' => 'newTaskForm']) ?>
<fieldset>
<legend><?= __('Add Task') ?></legend>
<?php
echo $this->Form->control('customer', ['id' => 'Autocomplete', 'empty' => false, 'required' => true]);
echo $this->Form->control('name', ['label' => 'Title','autocomplete' => 'off']);
echo $this->Form->control('instructions');
?>
</fieldset>
<?php echo $this->Modal->end([
$this->Form->submit(__('Direct Assign'), ['id' => 'DAbtn', 'name' => 'btn', 'class' => 'button' ]),
$this->Form->submit(__('Save as pending'), ['id' => 'SPbtn', 'name' => 'btn', 'class' => 'button' ])
]); ?>
我想以 json 格式提交带有数据的表单。所以我尝试了jquery
:
<script type="text/javascript">
$(document).ready(function(){
$('#newTaskForm').submit(function(){
var task = $(this).serialize();
source: function( request, response ) {
$.ajax({
type: "POST",
url: '/app/tasks/createTask',
datatype: 'json',
data: task,
success: function( data )
{
}
});
}
return false;
});
});
</script>
但它不断通过发布请求发布表单。它不通过 ajax 提交。我该如何解决?
解决方案
您可以将提交按钮替换为常规按钮,并使用 onClick 调用 ajax。
例子:
$this->Form->button('Direct Assign', ['id' => 'DAbtn', 'name' => 'btn', 'class' => 'button' ]);
在阿贾克斯:
$("#DAbtn").click(function () {
var task = $("#newTaskForm").serialize();
source: function( request, response ) {
$.ajax({
type: "POST",
url: '/app/tasks/createTask',
datatype: 'json',
data: task,
success: function( data )
{
}
});
}
推荐阅读
- java - 在 IntelliJ 中但不在命令行上运行 JUnit 5 测试时出错
- javascript - React Hooks 异步最佳实践
- python - 使用 pd.ExcelWriter 写入后无法再打开 Excel 文件
- git - Git 树对象中的条目有哪些可能的模式?
- sql - 如何为“登录触发器”创建合适的测试环境?
- javascript - UnhandledPromiseRejectionWarning: TypeError: (intermediate value) is not a function
- debugging - Pycharm如何在没有转义的调试器中显示字符串
- javascript - 如何使用云模板访问 mturk 的 crowd-checkbox 中的 JSON 对象?
- bootstrap-4 - 为什么某些最大宽度媒体查询使用 .98px
- .net - “找不到与密钥匹配的证书。” 尝试使用 makecert.exe 和 pvk2pfx.bat 对 Visual Studio 项目进行签名时