我需要显示金额的文本结果,为此我使用 JavaScript 函数“toWords”。当我使用 onInput 或 onClick 时,此函数运行良好,但我需要在文档打开时调用此函数。这就是我尝试过的:
<div class="label-field-pair3-text-area">
<p id="demo"></p>
</div>
<script type='text/javascript'>
document.getElementById("demo").innerHTML = window.toWords("<%= @amount.to_f %>");
..... </script>
但这行不通。我也尝试过这个:
j(document).ready( function(){ text_amount();});
function text_amount(){
var i= getElementbyId('payment_text');
i.val(toWords("<%= @amount.to_f %>"));}
还有这个:
<div class="label-field-pair3-text-area" id='payment_text' onload = "text_amount(150)">
但是这些都不起作用,并且什么也没有显示。
更新:当我从 Controller 中删除 render:pdf 时,它起作用了。所以问题是在渲染我的 PDF 文件时在 onLoad 上运行这个函数。
最佳答案
看起来您混合了 jquery 和常规 js:您使用 getElementById 定义 i
,然后在其上调用 jquery 对象函数 val()
。 val()
需要在 jquery 对象上调用,而 i
则不需要。试试这个:
function text_amount(){
var i = $('#payment_text');
i.val(toWords("<%= @amount.to_f %>"));
}
或者更简单地说,
function text_amount(){
$('#payment_text').val(toWords("<%= @amount.to_f %>"));
}
关于javascript - rails : How to call a Javascript function from HTML in render :pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33214860/