我在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属性。可能吗?任何帮助,将不胜感激。感谢
答案 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功能。建议使用它,因为它为您提供了足够的选择和更快的开发。