我的application中有以下对话框:
当用户按下Add logo
按钮时,应该发生以下事情:
我有以下代码。文件选择的markup如下所示:
<button class="btn" ng-click="$ctrl.addLogo()">Add logo</button>
$ctrl.addLogo()
定义为(source)
$ctrl.addLogo = function() {
console.log("'Add logo' button clicked");
var uploadForm = document.createElement('form');
var fileInput = uploadForm.appendChild(document.createElement('input'));
fileInput.type = 'file';
fileInput.name = 'images';
fileInput.multiple = true;
fileInput.click(function() {
console.log("Click callback called");
});
};
当我按下Add logo
按钮时,文件选择对话框确实打开,但Click callback called
消息未出现在控制台中。这意味着我无法检测到用户何时选择了文件(或者使用&#34关闭对话框;取消&#34;)。
如何对用户选择文件(或取消对话框)实施反应?
答案 0 :(得分:1)
当用户选择@Controller
@RequestMapping("/admin")
public class AdminController {
@RequestMapping(method=RequestMethod.POST, value="/movies")
@ResponseBody
public String createMovie(String movie) {
System.out.println("Adding movie!! "+movie);
return "created";
}
@RequestMapping(method=RequestMethod.GET, value="/movies")
public String createMovieForm() {
return "createMovieForm";
}
}
中input
的文件时,会触发type="file"
个事件。
如果您用change
侦听器替换click
侦听器,它应该有效:)
change
必须成为:
fileInput.click(function() {
console.log("Click callback called");
});