【问题标题】:Javascript is not working with my _form.html.erb?Javascript 不适用于我的 _form.html.erb?
【发布时间】:2014-06-11 08:34:47
【问题描述】:

我正在使用 ruby​​ on rails 进行定期存款项目。在那个 _form 中,如果我从周期中选择一些值,它应该会自动显示 rate_of_interest 的文本框值。我尝试了一些javascript,但它不起作用。这是我的代码。

_form.html.erb

脚本标签内

var roivalues = {

    '12 Months': 9.5,
    '24 Months': 10,
    '36 Months': 10.5,
    '48 Months': 11,
    '60 Months': 11.5
};


var form = document.getElementById('roidetails');

form.elements.noy.onchange = function ()

 {
    var form = this.form;

    form.elements.roi.value = roivalues[this.value];

};





<%= form_for @fd, :html => {:id => "roidetails"} do |f| %>  

<% if @fd.errors.any? %>


<h4>Couldn't open FD Account</h4>

<ul>

<% @fd.errors.full_messages.each do |error| %>

<li><%= error %></li>

<% end %>

</ul>


<% end %>


    <%= f.label :Period %>

    <%= f.select :noy, options_for_select(%w[12months 24months 36months 48months 60months]), { :include_blank => true}, :onchange => 'setroi(document.Form, this.value);' %>


    <%= f.label :Rate_of_interest %><span class="help-block">auto-generated</span>

    <%= f.text_field :roi, :id => 'roi', :disabled => true %>

  </div>

    <%= f.submit "Open FD", class: "btn btn-primary" %>  

    <% end %>

  </div>

</div>

我不知道为什么 javascript 不起作用。

请给我一些想法让我出去。

谢谢...

【问题讨论】:

  • 究竟是什么不工作,您在浏览器控制台中是否收到任何错误?
  • 请发布更多关于 setroi js 功能的描述。
  • @Sandeeproop:当我选择 12 个月(选择:noy)时,我想在文本框(text_field:roi)中自动获得 9.5% 的利率。仅此一项,我就在尝试上面的 javascript。
  • @Sanket:我已经关注这个网站来完成我的任务sitepoint.com/forums/…
  • 嘿@yogi,sitepoint.com js 正在处理选择标签名称,请检查表单的选择标签名称并将其替换为 form.elements..onchange = function ()

标签: javascript jquery ruby-on-rails drop-down-menu


【解决方案1】:

请替换你的 JavaScript

form.elements.noy.onchange

form.elements.fd_noy.onchange

@Sandeeproop 建议的 var roivalues

这是解决方案。

var roivalues = {

  '12months': 9.5,
  '24months': 10,
  '36months': 10.5,
  '48months': 11,
  '60months': 11.5
};

var form = document.getElementById('roidetails');

form.elements.fd_noy.onchange = function ()

 {
    var form = this.form;

    form.elements.roi.value = roivalues[this.value];

};

【讨论】:

  • 老大,我已经按照你和Sandeep的建议改了,老大也不行。
  • (tail -f log/development.log) 在 2014-06-12 10:24:33 + 开始 GET "/assets/bootstrap-popover.js?body=1" for 127.0.0.1 0530 服务资产 /bootstrap-popover.js - 304 未修改 (0ms) 开始 GET "/assets/fds.js?body=1" for 127.0.0.1 at 2014-06-12 10:24:33 +0530 服务资产 / fds.js - 304 未修改 (0ms) 开始 GET "/assets/money.jpg" for 127.0.0.1 at 2014-06-12 10:24:33 +0530 Served assets /money.jpg - 304 Not Modified (4ms)
  • 我认为这是查看控制台日志“tail -f log/development.log”的命令吧?。
【解决方案2】:

尝试替换这个

var roivalues = {

   '12 Months': 9.5,
   '24 Months': 10,
   '36 Months': 10.5,
   '48 Months': 11,
   '60 Months': 11.5
};

有了这个

var roivalues = {

  '12months': 9.5,
  '24months': 10,
  '36months': 10.5,
  '48months': 11,
  '60months': 11.5
};

【讨论】:

  • 你可以在从你的代码中删除这一行后尝试吗?“var form = this.form;”
  • 是的,我已将其删除。结果还是一样...请帮助我。
  • 您能否检查您的浏览器控制台是否有任何错误。如果您使用的是 FF,请检查 firebug 控制台。
  • 我使用的是 firefox 11.0,因为 firebug 不支持
  • 我给了它显示的检查元素: 自动生成
【解决方案3】:

上面的 javascript 对我不起作用,所以我使用以下站点,这非常适合我的要求。感谢 Sandeeproop 先生和 Sanket 先生的支持。 http://www.codingforums.com/general-web-building/178397-change-text-box-value-based-drop-down-value-selected.html

【讨论】:

    猜你喜欢
    • 2018-01-27
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 2014-03-23
    • 2012-06-23
    相关资源
    最近更新 更多