2015-06-09 53 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();