Symfony2+Ajax:删除表单错误
Symfony2 + Ajax: remove form error
我正在尝试通过Symfony2和Ajax创建实体。当我尝试输入现有名称时,我想在"名称"文本框下得到错误。在输入另一个正确的名称后,我希望从中成功删除并提交错误消息。我的代码没有提交正确的数据,但不断添加更多的错误消息。
控制器
public function createSubmitAction(Request $request){
$collection = new Collection();
$user = $this->getUser();
$form = $this->createForm(
new CollectionType(),
$collection
);
$form->handleRequest($request);
$colname = $form["name"]->getData();
$existing = $this->getDoctrine()->getRepository('CollectionBundle:Collection')->findBy(['name' => $colname, 'user' => $user]);
if ($existing != NULL) {
return new JsonResponse(['error' => 'already exists']);
}
if ($form->isValid() && $form->isSubmitted()) {
$em = $this->getDoctrine()->getManager();
$collection->setUser($user);
$em->persist($collection);
$em->flush();
return new JsonResponse([
'id' => $collection->getId(),
'name' => $collection->getName()
]);
}
}
Javascript
function createInObjectCollection(){
var $form = $('#create-in-object-form');
$($form).submit(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: $form.attr('action'),
data: $form.serialize()
}).done(function( data ) {
if (data.error){
$('<label class="form-error">Collection with such name already exists</label>').insertAfter('#mymini_collectionbundle_collection_name');
$('#mymini_collectionbundle_collection_name').addClass('error');
}
else{
$("#collection_bundle_add_to_collection option:first-child").after('<option value='+ data.id + '>' + data.name + '</option>');
$('#createCollectionModal').foundation('reveal', 'close');
}
});
});
}
我也有类似的情况。我使用EventListener:
$builder->addEventListener(
FormEvents::PRE_SET_DATA,
function (FormEvent $event) {
$form = $event->getForm();
$data = $event->getData();
''...
}
);
您还可以使用"提交"answers"PRE_SUBMIT"之类的事件。
相关文章:
- 有什么“;错误的”;将javascript放在asp.net表单上,而不是放在单独的文件中
- 试图获取表单时出现Jquery错误
- JavaScript表单验证-“;“错误”;不按需要工作
- jquery表单验证复选框错误显示
- 页面上的2个表单带有JS验证-其中一个抛出电子邮件验证错误
- 表单值未在单击按钮时发布,显示验证错误
- 表单已发送,但验证有错误
- 使用gmail-api发送电子邮件错误:此api不支持解析表单编码的输入
- 表单提交没有'如果为空,则不会显示错误消息
- 使用Backbone在模型更改时渲染表单会导致表单UI错误
- Javascript表单验证-jsFiddle错误
- 在表单提交按钮的点击事件中调用函数时发生引用错误
- 表单在由ajax部分Ruby创建时有错误的操作
- JavaScript表单错误
- 引导表单向导 - 防止在提交 ajax 响应的每个页面表单出现错误时滚动到下一步
- 即使验证正则表达式错误,也提交表单
- Django 使用 Javascript 提交的错误表单
- JavaScript错误表单验证:提交时清除所有输入字段
- Microsoft JScript运行时错误:表单中需要对象
- 谷歌应用程序脚本未上传文件:网络错误:表单提交失败