我在Yii2中遇到了一些问题。我需要创建一个包含三个下拉菜单的表单,该菜单询问用户一周中哪些时间最适合他或她。第一个菜单是一周中的几天,接下来的两个菜单是开始和结束时间。
但我的项目比这更雄心勃勃。我还需要允许用户指定任何时间配置,因此必须扩展表单并使其动态化,允许用户向表单添加更多下拉菜单以指定更多次。
我尝试了很多解决方案,但麻烦似乎在于拥有用户创建的输入字段。我相信在Yii 1中有一种方法可以做到这一点,但Yii 2显然是这样的代码检修,旧的解决方法很少有用。我已经调查了许多扩展,特别是Krajee的扩展,尽管其中许多扩展非常漂亮且用户友好,但它们并不提供动态字段创建。我自己尝试了一些黑客,但没有任何工作,我想知道是否有办法在Yii 2中创建一个具有动态输入字段数量的表单。如果没有,我和#39;我很想在Yii之外写一些简单的Javascript和Php来完成工作,但是我想留在框架内。
答案 0 :(得分:1)
它看起来并不复杂......
那里有很多解决方案,你可能会发现很多例子......
请参阅我为您找到的这些示例。
请参阅此完全有效的示例,其中您可以使用多个地址,并且可以更改这些字段以匹配您需要的字段。
http://wbraganca.com/yii2extensions/dynamicform-demo1/create
答案 1 :(得分:0)
使用复杂表单时,可能会动态地将字段添加到表单中(或从表单中删除)。新添加的字段也需要进行验证。
https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/187演示了一个必须解决验证动态字段问题的示例场景。
答案 2 :(得分:0)
如果有人在2019年在这里,请看看 Yii2 documentation - Here
$('#contact-form').yiiActiveForm('add', {
id: 'address',
name: 'address',
container: '.field-address',
input: '#address',
error: '.help-block',
validate: function (attribute, value, messages, deferred, $form) {
yii.validation.required(value, messages, {message: "Validation Message Here"});
}
});
要为这些字段启用客户端验证,必须将它们注册到ActiveForm JavaScript插件