【问题标题】:Send data from js to rails将数据从js发送到rails
【发布时间】:2019-09-14 20:06:19
【问题描述】:

我的项目中的控制器上有一个变量。 我想将变量从控制器发送到 js, 变量在js上再次计算并从js发送到控制器。但我失败了。我该怎么做?从现在开始谢谢你。

  %input#calculate{ type: 'text', value: "#{@cpp}", disabled: true }/

@cpp 变量被发送到 js。它再次计算。在屏幕上打印新值。但@cpp 值没有改变。

【问题讨论】:

  • 你能提供更多细节吗?您的控制器代码以及 Rails 视图和 JS 代码是什么样的?
  • 请在您的问题中添加表单定义和控制器方法。
  • 我的项目详情在下面的评论中

标签: javascript ruby-on-rails model-view-controller


【解决方案1】:

查看/calculation.html.haml

.container
  .calculator
    .calculator__display
      %input#calculate{ type: 'text', value: "#{@cpp}", disabled: true }/
    .calculator__keys
      %input{ onclick: 'nine()', type: 'button', value: '9' }/
      %input{ onclick: 'eight()', type: 'button', value: '8' }/
  .dropdown.position-right
    %button.btn.none-focus
      = '='
      .dropdown-content
        = link_to user_calculations_path(operation_type: "=",  calculate_piece_price: @cpp),                                                   
                method: :post,
                class: 'button btn btn-info' do
          = t('view.btn.calculation')

assets/javascipts/application.js

function nine(){
    var calculate =  document.getElementById("calculate");
    if (calculate.value == "0") {
        calculate.value =  "9" ;
    }
    else {
        calculate.value = calculate.value + "9";
    }
}

function eight(){
    var calculate =  document.getElementById("calculate");
    if (calculate.value == "0") {
        calculate.value =  "8" ;
    }
    else {
        calculate.value = calculate.value + "8";
    }
}

控制器/calculations_controller.rb

  def calculation_piece_payment
    @cpp = Calculation.quantity.to_s
  end

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-09-22
  • 2017-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-13
相关资源
最近更新 更多