simple_form 上的星级不会发送表单值

Posted

技术标签:

【中文标题】simple_form 上的星级不会发送表单值【英文标题】:Star rating on simple_form doesn't send the form value 【发布时间】:2015-04-22 16:53:50 【问题描述】:

我正在使用 JQuery 插件为我的简单表单的字段提供星级样式。那是图书馆:http://plugins.krajee.com/star-rating

我在我的 Slim 表单中这样称呼那个类:

td = f.input :score, label: false, input_html: class: 'rating'

它是这样显示的:

这是我生成的 HTML 表单:

<form novalidate="novalidate" class="form-vertical edit_arquivo" id="edit_arquivo_1" action="/documentos/1/arquivos/1" accept-charset="UTF-8" method="post"></form>
<input name="utf8" type="hidden" value="✓">
<input type="hidden" name="_method" value="patch">
<input type="hidden" name="authenticity_token" value="HPAt+RG4IluAdpIhsNSdMw/tFQ2PF0CzIWUGhUwkZ+AXcyy0fZOLSW+EYMAkt1m56s+KMW25aEbce/MtfNjwwA==">
<tr>
  <td>
    <div class="form-group integer optional arquivo_score">
      <div class="controls">
        <div class="star-rating rating-xs rating-active">
          <div class="rating-container rating-gly-star" data-content="">
            <div class="rating-stars" data-content="" style="width: 80%;"></div>
            <input class="numeric integer optional rating form-control hide" type="number" step="1" name="arquivo[score]" id="arquivo_score">
          </div>
        </div>
      </div>
    </div>
  </td>
  <td>
    <input type="submit" name="commit" value="Atualizar Arquivo" class="btn btn-default btn btn-default btn-primary btn-large">
  </td>
</tr>

但是,出于某种我不知道为什么,只有参数 arquivo_score 没有发送到我的控制器,正如我的请求所说:

Started PATCH "/documentos/1/arquivos/1" for ::1 at 2015-02-20 17:18:53 -0300
Processing by ArquivosController#update as HTML
  Parameters: "utf8"=>"✓", "authenticity_token"=>"wB2bfSO4VgQyZ+No4zu5OY8hYgsO7WWI1GzSJ9E05LDLnpowT5P/Ft2VEYl3WH2zagP9N+xDTX0pcieP4chzkA==", "arquivo"=>"cancelado"=>"0", "observacao"=>"", "commit"=>"Atualizar Arquivo", "documento_id"=>"1", "id"=>"1"

谁能告诉我我错过了什么?我可以看到该字段与其他字段之间的区别是字段数据内容,但我不知道它是否与该问题有关。我错过了什么?

【问题讨论】:

请格式化您的 html。 可能是表单结束标记。另外,我发现表单中有一个表格,但表格标记不完整,这很奇怪。 有时这会使浏览器从表单中获取标记或其他奇怪的行为。 @LearnRailsFastandFree 现在它有时会发送值为“0”的参数,有时不发送。如果我刷新页面,它会发送参数,如果我点击按钮而不刷新,它不会发送任何 HTTP 请求。 现在怎么样了?你改变了什么? 【参考方案1】:

我认为是turbolink引起的,当你只是切换页面时它会替换body但不刷新。尝试在标签中添加data-no-turbolink

【讨论】:

以上是关于simple_form 上的星级不会发送表单值的主要内容,如果未能解决你的问题,请参考以下文章

simple_form: 禁用表单而不添加 disabled: true 或 readonly: true 到每个输入

无法让 rails 搜索表单与 simple_form 和 sunspot 一起使用

如何使用 AJAX 更新 simple_form 输入字段?

simple_form 通过关联在同一个表单上多次使用相同的属性

simple_form 集合单选按钮

Rails 5 simple_form 将单选按钮标记为必需,如果未填写则阻止提交表单