我有:
{{ form_start(form, {'action': path('admin_user_edit_exec',{'user_id':id,'babis':'777'}),'attr': {'class': 'smart-form userform','id':'formid'} } ) }}
我想添加如下内容:onsubmit:"return validateForm()"
要调用一个js函数但是在语法上挣扎,到处都试图把onsubmit。
表格停止工作,我应该把它放在哪里?
答案 0 :(得分:6)
在html标记中渲染该属性没有问题。您可以像使用任何其他属性(class,id ...)一样执行此操作。
例如(我已经稍微更改了操作以使其适应我的SF安装):
{{ form_start(form, {'action': path('_demo_hello',{'name':5}),'attr': {'class': 'smart-form userform','id':'formid', 'onsubmit':'return validateForm();'} } ) }}
会呈现:
<form name="contact" method="post" action="/symfony/web/app_dev.php/demo/hello/5" class="smart-form userform" id="formid" onsubmit="return validateForm();">
如果你设置了js函数validateForm
,它应该可以工作。无论如何,如果它没有,那将是一个与你的js有关的问题,而不是SF。
正如评论中所指出的,使用js将提交事件附加到元素而不是将其添加到HTML标记中是更好的做法。你可以使用jQuery或纯js(非常straightforward),不需要总是依赖jQuery。