标签: formbuilder

如何获取输入类型是使用symfony2中的表单编号?

这是我的表单构建器代码

public function buildForm(FormBuilder $builder, array $options)
{
    $builder->add('phoneAlternative', 'number',array('max_length'=>15));
    $builder->add('emailPersonal', 'email');
    $builder->add('addressCurrent', 'textarea');
}
Run Code Online (Sandbox Code Playgroud)

这是html标记

<input id="employee_phoneAlternative" type="text" maxlength="15" required="required" name="employee[phoneAlternative]" class="valid">
Run Code Online (Sandbox Code Playgroud)

任何人都建议我.为什么输入类型给出"文本",因为我给出了一个数字.建筑形式.我将如何使用表单生成器在symfony2中获取输入类型为"数字".

formbuilder symfony

5
推荐指数
1
解决办法
2万
查看次数

Symfony2并形成主题/定制(必需/帮助/错误)

也许我忽略了一些东西,希望这很容易.

我有一个表单,我最终想要的是以下结果:

领域:

  • 是强制性/必需的
  • 目前有错误
  • 有帮助

应该a在标签和额外的div之后获得额外的-Tag,填写帮助和/或错误(如果适用).

我需要做的是,必填字段a使用以下方法获取-Tag:

{% use 'form_div_layout.html.twig' with field_label as base_field_label %}

{% block field_label %}
    {{ block('base_field_label') }}

    {% if required %}
        <a href=""><span>&nbsp;</span></a>
    {% endif %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

所以,我尝试过的是不同的版本:

{% use 'form_div_layout.html.twig' with field_label as base_field_label %}

{% block field_label %}
    {{ block('base_field_label') }}

    {% if required or help is defined %}
        <a href=""><span>&nbsp;</span></a>
    {% endif %}
{% endblock %}

{% block field_row %}
    {% spaceless %}
        <div class="row"> …
Run Code Online (Sandbox Code Playgroud)

theming formbuilder symfony twig

5
推荐指数
1
解决办法
2802
查看次数

设置symfony 2表单字段的名称属性

如何在symfony 2中设置渲染字段的名称属性?

预期产量:

     <input type="text" name="test" value="test" />
Run Code Online (Sandbox Code Playgroud)

以这种方式渲染场

     {{ form_widget(form.test, { 'attr': {'name': 'test'} }) }}
Run Code Online (Sandbox Code Playgroud)

绝对不行.

输出仍然是

     <input type="text" name="form[test]" value="test" />.
Run Code Online (Sandbox Code Playgroud)

有没有办法动态设置name属性或id属性?谢谢.

php forms formbuilder symfony

5
推荐指数
1
解决办法
1万
查看次数

Laravel selectRange空白选项

我正在创建一个"日"选择下拉列表.使用selectRange我可以这样做:

{{ Form::selectRange('day', 1, 31, $day) }}
Run Code Online (Sandbox Code Playgroud)

问题是,当表单加载时,如果$day未设置,则1默认选择.是否可以使用selectRange为它们提供具有NULL值的"请选择"选项?

forms formbuilder laravel laravel-4

5
推荐指数
3
解决办法
4131
查看次数

Angular2 RC:在创建ControlGroup后,使用addControls方法添加了控件

我有一个添加不同的字段(我添加新的控件,因为只是使用*ngIf将它们从模板中隐藏起来,因此不会从表单中将它们排除,因此导致表单无效)基于select选项中的选定选项.我正在使用Angular2中的表单的addControl方法向可用表单添加新控件.控件正在正确添加,但我不知道为什么这些添加的控件的值在用户输入后没有更新.以下是我向表单添加新控件的方法:

signUpForm: ControlGroup;

constructor(private fb: FormBuilder) { }

ngOnInit(): void {
    this.signUpForm = this.fb.group({
        firstName: ["", Validators.required],
        lastName: ["", Validators.required],
        group: ["", Validators.required]
    });
}

modifyControls(selectedGroup): number {
    if (selectedGroup == 1) {
        if (this.signUpForm.contains("studentID")) {
            this.signUpForm.removeControl("studentID");
        }
        this.signUpForm.addControl("teacherCode", new Control("", Validators.required));//need some custome validations
        this.signUpForm.addControl("teacherID", new Control("", Validators.required));
        return 1;
    }
    else if (selectedGroup == 2) {
        if (this.signUpForm.contains("teacherCode")) {
            this.signUpForm.removeControl("teacherCode");
            this.signUpForm.removeControl("teacherID");
        }
        this.signUpForm.addControl("studentID", new Control("", Validators.required));
        return 2;
    }
}
Run Code Online (Sandbox Code Playgroud)

看起来角度不能识别那些新的领域.我认为它与AbstractControl有关,但文档缺乏这一点.以下是问题的快照,即动态添加的控件未被角度拾取. 在此输入图像描述

为了显示问题,我在下面的plunker中创建了一个简单的例子(请转到版本2来复制此问题).

https://plnkr.co/edit/RI4JL4Pnf2LrJ3TsxsSt?p=preview

我做错了什么以及如何使其适用于当前的设置?实现相同行为的其他选择有哪些?

谢谢您的帮助

解决方法:

modifyControls(selectedGroup) { …
Run Code Online (Sandbox Code Playgroud)

formbuilder angular2-forms angular

5
推荐指数
1
解决办法
6489
查看次数

FormArray TypeError:value.forEach不是函数

为什么我一直收到这个错误?我想我做的一切都正常吗?

"EXCEPTION:Uncaught(在promise中):TypeError:value.forEach不是函数TypeError:value.forEach不是FormArray.setValue中的函数"

组件类:

jobDetails: FormGroup;
techFormArray: FormArray;

constructor(private formBuilder: FormBuilder){

    this.techFormArray = new FormArray([
        new FormControl(''),
        new FormControl(''),
        new FormControl('')
    ]);
    this.jobDetails = this.formBuilder.group({
        techs: this.formBuilder.array([])
    });
    this.jobDetails.setValue({
        techs: this.techFormArray
    });
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<form [formGroup]="jobDetails">
  <div formArrayName="techs" >
    <div style="display: flex; flex-direction: column">
      <div *ngFor="let tech of techFormArray.controls; let i=index">
        <md-checkbox [formControlName]="i">
          {{i}}
        </md-checkbox>
      </div>
    </div>
  </div>
</form>
Run Code Online (Sandbox Code Playgroud)

解:

FunStuff没错,我无法使用setValue ....所以我删除了它.问题解决了哈哈.我改变了一些事情,我不确定我做了什么,它基本上是蛮力的试验和错误几个小时,但后来它工作了!:)

这是工作版!

jobDetails: FormGroup;

constructor(private formBuilder: FormBuilder){

    this.jobDetails = formBuilder.group({
        techs: formBuilder.array([
            formBuilder.control(''),
            formBuilder.control('')
        ])
    });
}
Run Code Online (Sandbox Code Playgroud)

新HTML:

    <form [formGroup]="jobDetails"> …
Run Code Online (Sandbox Code Playgroud)

formbuilder angular

5
推荐指数
1
解决办法
9673
查看次数

如何将数组传递给Rails中的fields_for?

我想fields_for在关联中使用记录的子集.

我有一个Month模型,哪个has_many :payments.

但在我看来,我只希望得到fields_for一些付款.例如:

- fields_for @month.payments.large
Run Code Online (Sandbox Code Playgroud)

这不起作用.

我可以传递一组记录fields_for,而不是通常的符号(fields_for :payments)方法吗?

forms field ruby-on-rails nested-forms formbuilder

4
推荐指数
2
解决办法
3771
查看次数

在更新Angular2 rc3之后,无法绑定到'ngFormModel',因为它不是已知的本机属性

更新到rc3后,ngFormModel无法正常工作

我的HTML:

<form [ngFormModel]="form">
    <select ngControl="syncTime" name="syncTime" [disabled]="!sync" class="form-   control">

    </select>
</form>
Run Code Online (Sandbox Code Playgroud)

我的.ts

constructor(private fb: FormBuilder) {
        this.form = this.fb.group({
            syncTime: this.syncTime
        });
Run Code Online (Sandbox Code Playgroud)

formbuilder angular

4
推荐指数
1
解决办法
7059
查看次数

Angular2 FormBuilder:在自定义验证器中使用"this"

我正在使用Angular2的FormBuilder开发一个带有自定义验证的表单.问题:在customValidator中我this用来访问本地对象data.我在undefined执行验证时遇到错误.

看起来customValidator在不同的对象中执行,因此更改this引用

问题:如何将引用传递this给customValidator?

export class Ast {
    public data:any;
    public myForm:FormGroup;

    constructor(private _fb:FormBuilder) {
        this.data = {foo: "bar"};
    }

    customValidator(c: FormControl) {
        if (this.data.foo == "bar") { // This line crashes
            // DO something
        }
    }

   ngOnInit() {
       this.myForm = this._fb.group({
           some_field: ['', [<any>Validators.required], this.customValidator]
       })
   }
}
Run Code Online (Sandbox Code Playgroud)

formbuilder angularjs angular

4
推荐指数
2
解决办法
1136
查看次数

Angular2:在表单构建器中订阅 valuechanges

我将 ionic2 与 angular2 一起使用,并且我有一个使用 formbuilder 构建的表单,但我想检测某个输入的新变化。

ionViewDidLoad() {
  this.purchaseDataForm = this.formBuilder.group({
    kms: ['', Validators.required],
    lts: ['', Validators.required],
    price: ['', Validators.required],
    total: ['', Validators.required]
  });
}
Run Code Online (Sandbox Code Playgroud)

所以这是我的形式是如何得到证实,但我想认购的valuechanges价格LTS的投入,你知道该怎么做?

我正在尝试使用以下功能,但它显示 Cannot read property 'valueChanges' of undefined

 ngOnInit() {
  this.purchaseDataForm.price.valueChanges.subscribe(value => {
    console.log(value);
  });
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

formbuilder angular2-forms angular

4
推荐指数
1
解决办法
1万
查看次数