我最近开始在表单上使用多个按钮,利用 isclicked ()
方法和为每个按钮指定的验证组。
它工作得很好,直到我需要在用户按下特定按钮时询问附加信息。
事情是:每当我在 jQuery 中对按钮的单击事件或表单的提交事件执行某些操作时,它都会以某种方式阻止 Symfony 知道按下的按钮,因此它会说 clickedButton 为 null。
例如,当我这样做时: $form->getClickedButton()->getName()
我收到此错误:
"Error: Call to a member function getName() on a non-object"
即使我只是这样做:
$("form").submit( function()
{
$("button[type='submit']").attr("disabled", true);
});
令我困惑的是,我在这里看到了做这种事情的建议:
$(this).append('<button />').attr('type', 'hidden').attr('name', "something").attr('value', "something");
在提交事件上,但是当我这样做时,我似乎没有在 Controller 中找到有关请求的信息。
如何实现在单击按钮的同时发送附加信息?
最佳答案
点击的按钮是使用提交的数据确定的,如果按钮名称出现在 POST
或 GET
中,则该按钮被标记为 clicked = true
.
现在,在您的 JavaScript 代码段中,您将禁用按钮,并且禁用的字段/输入不会显示在提交的数据中,因此,sf2 无法确定单击了哪个按钮。
正如其他人已经建议使用隐藏字段一样,但是首先将其添加到您的表单中,然后根据需要使用 javascript 填写信息。
关于jquery - 如何在 Symfony2 上通过多个按钮发送附加信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29807331/