标签: formbuilder

试图扩展ActionView :: Helpers :: FormBuilder

我试图通过将一些逻辑移入FormBuilder来干掉一些代码.在阅读有关如何选择和替代表单构建器的文档后,对我来说逻辑解决方案似乎是这样的.

在视图中

<% form_for @event, :builder => TestFormBuilder do |f| %>
    <%= f.test  %>
    <%= f.submit 'Update' %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

然后在app/helpers/application_helper.rb中

module ApplicationHelper
    class TestFormBuilder < ActionView::Helpers::FormBuilder
        def test
            puts 'apa'
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

但是,这在"form_for"中给出了一个错误

  uninitialized constant ActionView::Base::CompiledTemplates::TestFormBuilder
Run Code Online (Sandbox Code Playgroud)

我在哪里做错了?

ruby-on-rails actionview formbuilder

3
推荐指数
1
解决办法
4201
查看次数

Angular 2 - 将嵌套的formbuilder标记为Touched

我有以下问题:在我的应用程序中我有一个巨大的形式与嵌套的formbuilder,它工作得很好,但是当用户提交表单时,我想将完整的表单标记为Touched(运行验证),代码是

constructor(private fb: FormBuilder) {
    this.form= fb.group({
        field1: [null],
        field2: [null],
        nestedForm1: fb.group({
            field3: [null, Validators.required],
            field4: [null]
        }),
        nestedForm2: fb.group({
            field5: [null, Validators.required],
            field6: [null, Validators.required]
        })
    });
}
Run Code Online (Sandbox Code Playgroud)

当我跑:

this.form.markAsTouched();
Run Code Online (Sandbox Code Playgroud)

只有Field1和Field2被标记,有没有办法让我不知道这样做?

forms nested formbuilder angular2-forms

3
推荐指数
1
解决办法
1338
查看次数

如何在symfony2中显示自定义表单验证错误消息

这是我的表单窗口的链接

任何人都可以建议如何在我的表单窗口中自定义错误消息,例如"此值无效","密码不匹配"显示为空字段的弹出错误消息?

formbuilder symfony

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

除了symfony2中数据库的内容外,还要添加自定义值

我的问题如下.

我在表单构建器中有一个下拉列表,它成功地从数据库中检索数据.

 public function buildForm(FormBuilder $builder, array $options) {
            $builder->add('Statusname', 'entity', array('empty_value' => 'All','class' => 'MyProject\EntityBundle\Entity\IssueStatusType', 'property' => 'name', 'required' => false,'query_builder' => function ($repository) { return $repository->createQueryBuilder('es')->orderBy('es.name', 'ASC'); },)) 
}
Run Code Online (Sandbox Code Playgroud)

它工作正常.但是当我添加自定义数据时

'not closed' => 'Not closed'
Run Code Online (Sandbox Code Playgroud)

进入下拉列表即

public function buildForm(FormBuilder $builder, array $options) {
            $builder->add('Statusname', 'entity', array('empty_value' => 'All','not closed' => 'Not closed','class' => 'MyProject\EntityBundle\Entity\IssueStatusType', 'property' => 'name', 'required' => false,'query_builder' => function ($repository) { return $repository->createQueryBuilder('es')->orderBy('es.name', 'ASC'); },)) 
}
Run Code Online (Sandbox Code Playgroud)

这是行不通的.有人可以告诉我为什么吗?

提前致谢.

formbuilder symfony

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

从Rails Formbuilder中访问资源属性

我正在尝试将工具提示添加到只读输入,这些输入可能并不总是足够宽以显示完整内容.当用户将鼠标悬停在输入上时,工具提示将用于显示完整内容.

问题是我似乎无法访问表单生成器参数部分中的资源属性.我正在努力使输入的值成为标题.请参阅以下代码:

= f.fields_for :invoice_items, @invoice.invoice_items do |item|
   %tr
      %td
         = item.text_field :code, :title => item.name, :rel=>'tooltip', :class => 'uneditable-input span1', :readonly=>'true
Run Code Online (Sandbox Code Playgroud)

举:

undefined method `name' for #<ActionView::Helpers::FormBuilder:0x007fea1e86f8e8>
Run Code Online (Sandbox Code Playgroud)

现在我们可以看到该项实际上不是资源,而是表单构建器类.如何从此处访问原始资源?

ruby-on-rails formbuilder

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

在Orbeon Form Runner上添加"提交"按钮,然后在提交时调用自定义Java REST API

我正在研究POC(概念证明),我正在评估Orbeon表单构建器/运行器.我正在使用社区版,以防万一,我需要更改代码,否则专业版将为POC做.

我正在将FormRunner与我在不同Web服务器上运行的Web应用程序集成,后者将使用一些自定义查询参数调用FormRunner URL.

我想从FormRunner中删除Summary,PDF和Review按钮,只是希望保存按钮作为提交按钮,所以点击它会将POST数据提交到我的自定义Java代码,该代码将与我的Web应用程序对话,可能通过REST API.然后,提交按钮会将我重定向到另一个页面,上面写着"您的数据已被提交".

我发现很难理解我可以更改预期行为代码的区域.你可以在这方面给我一些指示吗?

谢谢和问候,Mayuresh.

xforms formbuilder orbeon

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

PHP Symfony Forms如何访问嵌套对象中的属性

我正在使用SymfonyFormBuilder创建几个表单.通常我提供一个平面对象,它包含表单需要访问的所有属性.这很好用.表单使用正确的值填充对象,我可以将其作为json发送到处理它的Web服务(因此我根本不访问数据库).但在几种情况下,我从Web服务获得了必须更新的嵌套对象,或者我必须将嵌套对象(作为json)发送到服务,我想知道是否可以访问表单中嵌套对象的属性.

通常你这样做

$form = $this->createFormBuilder($myObject)
->add('myProp', 'text', array(
    'label'=>$this->get('translator')->trans('my Property')
))
Run Code Online (Sandbox Code Playgroud)

但在我的情况下,myObject拥有另一个对象,其中包含一些属性.所以我需要做这样的事情:

$form = $this->createFormBuilder($myObject)
->add('nestedObj.myProp', 'text', array(
    'label'=>$this->get('translator')->trans('my Property')
))
Run Code Online (Sandbox Code Playgroud)

但不幸的是,这似乎不起作用.是否有另一种解决方案来处理嵌套对象和表单?

php forms formbuilder symfony

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

如何将自定义字段添加到 Jquery 表单生成器

那里,

我正在使用 Jquery 表单构建器 ( https://formbuilder.online/ ),我完成了任务:向表单构建器添加自定义字段。

我想在不改变这个 jquery 插件的核心的情况下做到这一点。我已经发现我可以在其他更改之间将其添加到函数“fieldRender”中。

这样做我会丢失这个项目的更新,而且这个自定义字段太具体了,无法提供给项目本身。

我已经找了一段时间了,但还没有找到:有谁知道是否可以通过某种扩展策略添加自定义字段,这样我就可以每次都无需更改核心代码就可以构建自定义字段?

谢谢,

javascript jquery formbuilder

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

在Angular 2中异步验证表单字段(在HTTP请求之后)

我们的想法是让用户POST表单.并触发API返回的错误,如果用户已经注册,则将电子邮件字段设置为错误.

我使用FormBuilder的反应形式,我尝试在订阅错误捕获器中调用验证器:

构造函数:

this.email = fb.control('', [Validators.required, Validators.pattern(/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/), SignupComponent.alreadyExist()]);
this.username = fb.control('', [Validators.required, Validators.pattern(/^([A-ZÀ-ÿa-z0-9]{2,})+(?:[ _-][A-ZÀ-ÿa-z0-9]+)*$/)]);

this.userRegisterForm = fb.group({
    email: this.email,
    username: this.username
});
Run Code Online (Sandbox Code Playgroud)

自定义alreadyExist()验证器:

static alreadyExist(alreadyExist: boolean = false): any {

    return (control: FormControl): { [s: string]: boolean } => {

        if(alreadyExist) {
            return { emailAlreadyExist: true }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

}

onSubmit():

this.user.create(newUser)
    .subscribe(
        data => {
            this.router.navigate(['signin']);
        },
        error => {
            if(error.status === 401) {

                // CALL THE VALIDATOR HERE TO SET : FALSE
                SignupComponent.alreadyExist(true);
            }

            this.loading = …
Run Code Online (Sandbox Code Playgroud)

customvalidator formbuilder typescript angular

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

使用readOnly类进行所有输入

所以我正在构建一个拖放表单构建器,我想在所有输入readOnly上创建一个特定字段.这可以

  • 选择下拉列表
  • 文字输入
  • 数字输入
  • 日期输入

日期输入

示例图片

所有这些输入都将动态生成.

我看看 如何使用javascript在所有输入字段上添加readonly属性? & 如何在具有相同类的多个文本框上将readonly属性设置为false?

但没有一个只是通过类名输入名称readOnly.

我目前正在这样做:

$("#editClick").on('click', function(){
 $('.myNameClass').attr('readonly', false);
Run Code Online (Sandbox Code Playgroud)

});

但每次在页面上出现新字段时都需要一种方法来触发它(即检查是否增加了一个类的长度)

就像是:

if ($(".myNameClass")[0]).increases -> fire event-> and every time it does
Run Code Online (Sandbox Code Playgroud)

html javascript jquery formbuilder

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