我正在为我的项目使用jquery,backbonejs和underscorejs。我想使用ajaxForm和document.ready()上传图像。在productImageView.js上我有
define(['jquery', 'underscore', 'backbone', 'text!templates/product/productImageTemplate.html'], function($, _, Backbone, productImageTemplate) {
var ProductImageView = Backbone.View.extend({
el: $("#page"),
initialize: function() {
this.$el.off();
},
render: function() {
$(function() {
$('#myForm').ajaxForm(function() {
alert("Image uploaded");
});
});
this.$el.html(productImageTemplate);
}
});
return ProductImageView;
});
在productImageTemplate.html上
<form id="myForm" action="upload_image.php" method="post">
<input name="uploadfile" type="file" />
<input type="submit" id="uploadButton" value="Upload" />
我第一次上传图片,一切正常。但是当我第二次访问该页面并上传时,document.ready()
无效。
提前多多感谢。
答案 0 :(得分:1)
将this.$el.html(productImageTemplate);
放在ajaxForm
之前。
此处您不需要$(function() {
。渲染视图时DOM应该已经准备好了。如果您对此不确定 - 请将脚本放在</body>
之前。
答案 1 :(得分:0)
尝试使用渲染中的ajax:
$('#uploadButton').click(function(){
$.post('process_file.php', $('#myForm').serialize());
});