首页 > 解决方案 > 使用javascript通过id访问symfony表单小部件值

问题描述

我正在使用 symfony 3 生成的表单。为了验证表单,我想使用 javascript 访问表单小部件值(html 中的文本输入)。

问题是这样的:我无法在 javascript 中通过 id 或 name 访问 symfony 生成表单的文本输入(小部件),我已经向小部件添加了 id 和 name 属性,但仍然无法在 javascript 中访问它。

这是 formType :

public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder ->add('titre', TextType::class, [
            'attr' => [
                'class'                       => 'form-control',
                'type'=>"text",
                'name'=>"titre" ,
                'id'=>"titre",
                'placeholder'=>"*TITRE"
            ]
        ])
         ->add('Ajouter' ,SubmitType::class,
                [
                    'attr' => [
                 'class'=>"btn",
                        'id'=>"btn_submit",
        'onClick'=>"checkifValid();"]]
                );
    }

这是javascript:

<script>
$(document).ready(function(){
  document.getElementById("titre").value = "test";
alert( document.getElementById("titre").value);
//iam just testing if i am accessing to it's value or not
})
</script>

标签: javascripthtmlsymfonytwig

解决方案


html 源代码中呈现的字段 id 很可能包含定义字段的表单类型的名称。例如,对于MemberType包含文本字段的表单类型fname,html 源将包含<input id="member_fname"...>. 对该字段的 jquery 引用将是$("#member_fname"). 确认这一切的最好方法是使用浏览器的源代码显示来检查呈现的表单字段的 id。

希望这可以帮助。


推荐阅读