添加onchange以在模板yii2 fileInput内输入

时间:2016-08-02 12:49:28

标签: php yii2

我在yii2中使用文件上传,默认为yii2 fileInput()。 代码是:

$form->field($model, 'image', [
       'template' => "<span class='button'>{input}Browse</span><input type='text' placeholder='Include some files' readonly=''>"
       ])->fileInput(['multiple' => false, 'accept' => 'image/* '])->label(false);

这里我使用上面的自定义模板。问题是{input}自动生成输入字段,但我想在此输入中添加onchange属性。可能吗?任何帮助,将不胜感激。感谢

1 个答案:

答案 0 :(得分:1)

可以随意更改任何内容,但更可靠,更快捷的方法是使用FileInput Widget by Kartik。您必须先安装它。为此,请在composer或bash命令行中编写此命令:composer require "kartik-v/yii2-widget-fileinput": "*"并在安装后不要忘记使用,在项目中写use kartik\file\FileInput; .php文件。

然后你可以看到all possible plugin events(其中有很多)。其中描述的第一个事件是更改 (&#34;只要通过文件浏览按钮选择文件输入中的单个文件或多个文件,就会触发此事件&#34;)< / em>的

要初始化插件事件,请使用以下内容:

echo $form->field($model, 'attribute', [
    'template' => "<span class='button'>{input}Browse</span><input type='text' placeholder='Include some files' readonly=''>"])->widget(FileInput::classname(),
     [
        'options' => ['multiple' => false, 'accept' => 'image/*'],
        'pluginEvents' = [
            'change' => 'function(event) {
                alert("File changed");
            }'
        ]
    ])->label(false);

现在,您可以在alert("File changed");所在的行中编写JavaScript / jQuery Closure功能。建议使用它,因为它为您提供了足够的选择和更快的开发。