我正在尝试使用异步提交表单来上传图像,这是我的 Rails HTML:
<%= form_for(:image, :url => {:controller=> 'questions',:action => 'upload_Qimage'}, :html => {:id=>'qimage_upload'}) do |f| %>
<%= f.file_field :image, :onchange => " return uploadImage() ; " %>
<%= f.hidden_field :id , :value => Digest::MD5.hexdigest((current_user.id + Time.now.to_i).to_s )[0,7] %>
<% end %>
这是我的 js 函数 uploadImage() :
function uploadImage ()
{
$('#qimage_upload').submit() ;
$('#qimage_upload').submit( function() {
return false ;
}
忽略提交函数中的 ajax 代码,即使注释掉,我也无法获得第二个警报。我现在整天都在做这件事,不知道有什么问题。
更新:请注意上面代码中的更新,使用没有回调的简单 submit() 工作,但它不符合我的目的,因为它试图为操作呈现视图。这是一个 jQuery 版本问题吗?
第二次更新
这就是我的控制器操作的样子:
def upload_Qimage
@image = Image.new(params[:image])
@image.save
end
无论我尝试使用 jQuery 和 html 做什么,它仍然会尝试呈现视图。该文件与当前更新的 js 一起保存,但是当我希望它什么都不做或者只是返回一些数据(不是部分渲染,只是数据)时,它仍然尝试渲染视图