Javascript 在Yii2中动态添加输入字段

Javascript 在Yii2中动态添加输入字段,javascript,php,yii2,Javascript,Php,Yii2,我对Yii2中的表单有一些问题。我需要创建一个表单,其中包括三个下拉菜单,询问用户一周中什么时间最适合他或她。第一个菜单是一周中的几天,接下来的两个菜单是开始和结束时间 但我的项目比这更雄心勃勃。我还需要允许用户指定任何时间配置,因此表单必须扩展并动态化,允许用户向表单添加更多下拉菜单以指定更多时间 我尝试了很多解决方案,但问题似乎在于让用户创建输入字段。我相信在yii1中有一种方法可以做到这一点,但yii2显然是一种代码大修,以至于旧的变通方法很少有用。我调查了许多扩展,特别是Krajee的扩

我对Yii2中的表单有一些问题。我需要创建一个表单,其中包括三个下拉菜单,询问用户一周中什么时间最适合他或她。第一个菜单是一周中的几天,接下来的两个菜单是开始和结束时间

但我的项目比这更雄心勃勃。我还需要允许用户指定任何时间配置,因此表单必须扩展并动态化,允许用户向表单添加更多下拉菜单以指定更多时间


我尝试了很多解决方案,但问题似乎在于让用户创建输入字段。我相信在yii1中有一种方法可以做到这一点,但yii2显然是一种代码大修,以至于旧的变通方法很少有用。我调查了许多扩展,特别是Krajee的扩展,尽管它们中的许多非常漂亮且用户友好,但它们不提供动态字段创建。我自己也尝试过一些技巧,但都没有奏效,我想知道是否有办法在yii2中创建一个具有动态输入字段数的表单。如果没有,我很想在Yii之外编写一些简单的Javascript和Php来完成这项工作,但我想留在框架内。

这并不是它看起来那么复杂

有很多解决方案,你可能会发现很多例子

看看我为你找到的这些例子

请参阅这个完整的工作示例,其中可以设置多个地址,并且可以更改这些字段以匹配所需的字段


如果2019年有人在这里,请查看


要为这些字段启用客户端验证,必须使用ActiveForm JavaScript插件注册这些字段

found-one以寻找更好的解决方案。我不知道上面的链接是否有效。对生成的总输入是否有任何限制?可能有一个限制,用户无论如何都不会达到。例如,我不希望用户指定20种不同的时间配置。在yii2中找不到任何方法。我不确定我是否理解这个问题。您是否尝试在动态客户端添加输入,但不知道如何添加?或者,在表单验证时,您是否对动态创建的字段存在问题?等等?您是否使用AR来验证表单或表单模型?输入关键字代表什么?没有关于该示例的解释或文档。
$('#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"});
    }
});