Ruby On Rails Coffee脚本双击动作

时间:2018-11-23 17:30:39

标签: javascript ruby-on-rails coffeescript

我有一个表格,我将以英寸为单位输入长度测量值。我希望能够双击输入文本框,并将文本框的值转换为毫米。

我能够创建一个适用于嵌入式Javascript的脚本:

<input class="form-control" type="text" value="18.0" name="motor[diameter]" id="motor_diameter" />

<script type="text/javascript">
    $(document).on("dblclick", "#motor_diameter", function () {
    var old = parseFloat($("#motor_diameter").val());
    var converted = old * 25.4;
    $("#motor_diameter").val(converted.toString());
});
</script>

我去了Rails指南,他们谈论了“不引人注意的javascript”。我还希望能够在表单中的多个字段上使用此功能。所以我想出了这个CoffeeScript:

@metricLength = (element) ->
  impvalue = parseFloat(element.val)
  convalue = impvalue * 25.4
  element.val = convalue

$ ->
  $("input.data-length").dblclick (e) ->
    e.preventDefault()

    metricLength(this)

然后我将输入更改为此:

<input class="form-control data-length" type="text" value="18.0" name="motor[diameter]" id="motor_diameter" />

生成的JavaScript如下:

(function() {
  this.metricLength = function(element) {
    var convalue, impvalue;
    impvalue = parseFloat(element.val);
    convalue = impvalue * 25.4;
    return element.val = convalue;
  };

  $(function() {
    return $("input.data-length").dblclick(function(e) {
      e.preventDefault();
      return metricLength(this);
    });
  });

}).call(this);

此代码无效。谁能看到我在做什么错?谢谢。

0 个答案:

没有答案