2015-06-09 26 views
-2

我有一些代码,就像这样:Haml的和JavaScript和Ruby通信

%div{:id=>"alerts_tab",:class=>"settings_tab"} 
    %div{:class=>"main_block"} 
     %div{:class=>"left_block"} 
     %p Select 1 
     = radio_button_tag 'gender', 'male', :id=>"daily_frequency" 
     Daily 
     = radio_button_tag 'gender', 'male', :id=>"weekly_frequency" 
     Weekly 
     = radio_button_tag 'gender', 'male', :id=>"monthly_frequency" 
     Monthly 
     %p Try it 
     %input{:name => "malfunction_affects_more", :type => "checkbox", :class => "check_box", :value=>"off"} 
     AAAAAAAAAAAAAAAAAAA 
     %select{:class=>"custom_drop_down"} 
      %option 1% users 'test' 

我想用JS的选择数据和移动调查结果Ruby代码。但我有一些问题:1。 如果我写的JS代码

:javascript 
    $("#save_settings").click(function() { 
    var value = document.getElementById('daily_frequency'); 
    alert(value); 
    }); 

它不工作,为什么?

  1. 如果我抓住所有数据如何将结果移动到ruby代码。我不知道。

请帮我解决这个问题。

+2

那么对于初学者我没有看到一个'DOM'具有'save_settings'的'id'的对象? – engineersmnky

+0

** save_settings **它是我的按钮的ID和工作。我的问题关于其他。为什么** var value = document.getElementById('daily_frequency'); **不工作? –

+0

working,sorry :) document.getElementById('daily_frequency')。checked –

回答

0

语法错误。检查this

第三个参数设置checked属性,所以这应该工作:

= radio_button_tag 'gender', 'male', false, :id=>"daily_frequency" 

旁注有用haml语法:

%div{:id=>"alerts_tab",:class=>"settings_tab"} 

可以简单地写为

#alerts_tab.settings_tab 
+0

if if use next code:** document.getElementById('none_frequency')。value ** always always only only ** male ** but not **性别**。为什么? –

+1

这是因为'男'是一个值,'性别'是一个名字 –

+0

好。如何获得如果复选框控制启用我得到**真**其他**假**? –

-1

您的语法是wro NG:它应该是

var value = document.getElementById('daily_frequency').value; 
然而

,因为你使用jQuery,你还不如用jQuery的语法,这是整洁:

var value = $("#daily_frequency").val();