我有一个表格,我将以英寸为单位输入长度测量值。我希望能够双击输入文本框,并将文本框的值转换为毫米。
我能够创建一个适用于嵌入式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);
此代码无效。谁能看到我在做什么错?谢谢。