我正在尝试通过Ajax创建动态呈现的Symfony表单。现在,我写了这样的东西:
JavaScript
content.on('click', '.edit-user-data-btn', function() {
let id = $(this).parent().parent().attr('id');
if (id === undefined) return;
console.log(id);
$.ajax({
url: '/settings/ajaxChange/'+id,
dataType: 'json',
async: true,
cache: false,
beforeSend: function() {
content.html('');
loading.show();
},
success: function(data) {
content.html(data);
},
error: function() {
content.html('Wystąpił błąd');
},
complete: function() {
loading.hide();
}
});
Symfony控制器
/**
* @Route("/settings/ajaxChange/user-address", name="ajax_change_address")
*/
public function changeUserAddress(Request $request)
{
if ($request->isXmlHttpRequest()) {
$form = $this->createForm(UserAddressFormType::class);
$form->handleRequest($request);
$response = $this->render('user_settings/user_data/__user_address.html.twig', [
'UserAddressForm' => $form->createView()
])->getContent();
return new JsonResponse($response);
}
return $this->redirectToRoute('app_user_settings');
}
当我单击此屏幕截图上的按钮时,它的工作正常, Link for screenshot number 1
我的表单正确呈现:Link for screenshot number 2
现在我的问题是:单击屏幕快照2上的提交按钮后,如何检查该表单的有效性(我在实体中添加断言而不是空白),并执行一些操作,例如显示正确的消息?