【问题标题】:Dynamic form's javascript not working when removed { } from select tag-Rails从选择标签-Rails 中删除 { } 时,动态表单的 javascript 不起作用
【发布时间】:2013-08-30 13:40:26
【问题描述】:

我在 Rails 中有一个带有性别字段的表单

<%= f.select :gender, ["Male","Female"],{class: "gender"} %>  

我也试过这个:

<%= f.select :gender, ["Male","Female"],{class: "gender"},onclick: "categorychange" %>

但它不起作用。现在当我尝试时:

<%= f.select :gender, ["Male","Female"],{},{class: "gender"} %>  

一切正常。我在这里找到的。
我不明白 { } 代表什么。

对于不同的性别我有不同的对应字段来展示如下:

<div class="male">
//male fields here//
</div>  

<div class="female">
//female fields here//
</div>  

我有 javascript 为:

function categorychange(){
var val = $(this).val();
var gender = $(this).parent().find(".gender")
if (gender.val() == 'Male')
{
  $(this).parent().find('.male').show();  
  $(this).parent().find('.female').hide();
}
else if (gender.val()=='Female')
{
 $(this).parent().find('.male').hide();  
 $(this).parent().find('.female').show();
}  

但是 javascript 无法正常工作。它显示了两个div。

【问题讨论】:

  • 什么元素调用categorychange
  • @Musa 好的,现在我将 f.select 字段中的 categorychange 函数调用为 &lt;%= f.select :gender, ["male","female"],onclick: "categorychange" %&gt; 但它仍然无法正常工作。
  • rails select 需要 5 个不同的参数。 {} 是为选择提供选项。例如 { prompt: 'Choose a gender' }。

标签: javascript jquery ruby-on-rails ajax forms


【解决方案1】:
var select_gender = $('.gender')
select_gender.change(function(){
if (select_gender.val() == 'Male')
{
  $('.male').show();  
  $('.female').hide();
}
else if (select_gender.val()=='Female')
{
 $('.male').hide();  
 $('.female').show();
}}

不要在视图上使用 onclick,而是在 javascript 中尝试 onchange 事件作为选择输入。

【讨论】:

    猜你喜欢
    • 2014-12-01
    • 1970-01-01
    • 2021-02-24
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多