jCrop 不更新文本字段,Rails 4 应用程序

Posted

技术标签:

【中文标题】jCrop 不更新文本字段,Rails 4 应用程序【英文标题】:jCrop not updating text fields, Rails 4 app 【发布时间】:2015-07-26 11:51:23 【问题描述】:

我有一个应用程序,其中有两个不同的 jCrops 工作(用户图像和组图像)。用户一工作正常,组一与它完全一样,除了 div 名称的适当更改。 jCrop 不会更新文本字段,因此无法正确裁剪图像。预览确实会正确更新,因此咖啡脚本正在加载,问题出在更新 coods 上。我也没有在开发工具中遇到任何错误。

裁剪页面

 <div class="col-md-7">
        <%= image_tag @group.image_url, id: "cropbox" %>
    </div>
    <div class="col-md-5">
        <h4>Preview</h4>
    <div class="jcrop" style="width:100px; height:100px; overflow:hidden; border-radius: 50px;">
        <%= image_tag @group.image_url, :id => "preview" %>
        </div>
    <%= form_for @group do |f| %>
        <% %w[x y w h].each do |attribute| %>
            <%= f.text_field "crop_#attribute" %>
        <% end %>
        <div class="actions m-t-md">
        <%= f.button "Crop Image", class: "btn btn-primary mt10", data: disable_with: "<i class='fa fa-fw fa-spinner fa-spin'></i> Cropping" %>
        </div>
    <% end %>
</div>

Groups.coffee

# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

jQuery ->
  new AvatarCropper()
class AvatarCropper
  constructor: ->
    $('#cropbox').Jcrop
      aspectRatio: 1
      setSelect: [0, 0, 500, 500]
      onSelect: @update
      onChange: @update

  update: (coords) =>
    $('#group_crop_x').val(coords.x)
    $('#group_crop_y').val(coords.y)
    $('#group_crop_w').val(coords.w)
    $('#group_crop_h').val(coords.h)
    @updatePreview(coords)

  updatePreview: (coords) =>
    $('#preview').css
      width: Math.round(100/coords.w * $('#cropbox').width()) + 'px'
      height: Math.round(100/coords.h * $('#cropbox').height()) + 'px'
      marginLeft: '-' + Math.round(100/coords.w * coords.x) + 'px'
      marginTop: '-' + Math.round(100/coords.h * coords.y) + 'px'

【问题讨论】:

【参考方案1】:

想通了。我的问题的第二句话中有一个线索。我有两个同名的方法。显然这是行不通的。更改方法名称和 div 名称,解决了所有问题。

【讨论】:

以上是关于jCrop 不更新文本字段,Rails 4 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

在 Paperclip 和 Rails 4 中将 Jcrop 坐标转换为 convert_options

在创建图像之前使用 jCrop 和 cloudinary through rails 4 进行裁剪

当文本字段填充多对多表单时,Rails 3.2 Ajax 更新 Div

Rails Jcrop 语法错误

rails4.2.8carrierwave+mini_magick+Jcrop,图片上传失败

在 Rails 4 中,如何在不刷新的情况下在页面上提交表单和更新元素