javascript - rails : How to call a Javascript function from HTML in render :pdf

标签 javascript html ruby-on-rails render

我需要显示金额的文本结果,为此我使用 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/

相关文章:

javascript - 在 JavaScript 中使用带小数点的 float 的最佳方法是什么?

javascript - 自动完成关闭不适用于边缘浏览器

javascript - 浏览器自动完成功能不允许复制/键盘功能工作

ruby-on-rails - 'EOFError : end of file reached' on HEROKU while posting UTF-8 via SSL

ruby-on-rails - 从 ruby​​ 中的对象中删除不需要的属性

javascript - Ember JS 和迭代而不影响结果计数

javascript - 使用脚本加载器注入(inject)脚本访问全局变量

javascript - 在 div 标签内打开 URL

java - 使用 Play 框架 2.2.x 进行动态自定义验证

ruby-on-rails - 带有 Capybara 的 Rspec 找不到链接或任何元素