从select tag-Rails中删除{}时,动态表单的javascript无法正常工作

时间:2013-08-30 13:40:26

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

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

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

我也试过这个:

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

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

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

这一切都很好。我在这里找到了。enter image description here
我没有得到 {} 代表的内容。

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

<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。

1 个答案:

答案 0 :(得分: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事件进行选择输入。