我是symfony的新手,对javascript了解不多!
我创建了一个symfony表单,并在名称和名字上添加了一个UniqueEntity约束,因此无法在数据库中两次添加同一个人。
@UniqueEntity(fields={"firstname","name"}, message="this person already exists")
效果很好! 但在这种情况下,我希望symfony向我展示一个带有消息和2个选项的javascript窗口。例如:“joe smiley已经存在!你想加一个谐音吗?是/否
有谁知道怎么做?
非常感谢
答案 0 :(得分:0)
不,此验证严格来说是服务器端。
您应该尝试一些JS
验证库,例如:http://rickharrison.github.io/validate.js/(仅举例)
答案 1 :(得分:0)
您可以尝试查找该字段是否存在以及错误消息,这将取决于您如何显示表单字段,我强烈建议您自定义表单呈现以满足您的需求,这里是和你能做什么的例子。
<div class="control-group {% if(form_errors(form.descripcion)|length) %} error {% endif %} ">
{{ form_label(form.descripcion, null, { 'label_attr': {'class': 'control-label'} }) }}
<div class="controls">
{{ form_widget(form.descripcion) }}
{{ form_errors(form.descripcion) }}
</div>
</div>
将在验证显示和错误消息
时呈现此内容 <div class="control-group error ">
<label class="control-label required" for="AreaComercio_descripcion">Descripcion</label>
<div class="controls">
<input type="text" id="AreaComercio_descripcion" name="AreaComercio[descripcion]" required="required" >
<span class="help-inline">This value should not be blank.</span>
</div>
</div>
因此,如果您不知道如何对表单进行渲染,请查看是否存在与类帮助内联的跨度兄弟,请查看this,另一条建议使用jquery,有很多人使用它,jquery有一个强大的社区,如果你有需要会帮助你,说,我将使用jquery来说明你可以做些什么来解决你的问题。
if($("#AreaComercio_descripcion ~ .help-inline").length) { // here using sibling selector filter to ask if there a siblig with the class help-inline
var invalid_value = $("#AreaComercio_descripcion").val(); // asking for the field value thru its id attribute
confirm(invalid_value+" already exists! would you like to add an homonym ?");
}
使用javascript确认是最简单的方法来执行您想要的操作,但您可以使用其他更灵活的选项,例如jquery dialog,或者您可以尝试在symfony安装中安装twitter bootstrap,我想这些都是我希望它对你有用