2011-12-14 15 views
1

私はこのような状況では、以下の部分ビューの構造(ファイル_form.html.erb)1つのJavaScript関数が実行されますが、2つは実行されません。

<script language="javascript" type="text/javascript"> 

    function myFunction1() { 

     ... some js code here 

    } 

    function applyConfigs() { 

     ... some js code here 

    } 

</script> 

<%= form_for(@test, :html => {:name => "Test", :id => "test_form"}) do |f| %> 

    ... some Ruby code here 

    <div class="actions"> 
     <input type=button value="Run Function1" onclick="myFunction1();"> 
    </div> 

    ... some Ruby code here 

    <div class="actions"> 
     <input type=submit value="Apply" onclick="applyConfigs();"> 
    </div> 

<% end %> 

を持つ大規模なルビーon Railsのフォームを持っている私は、「ファイル名を指定して実行機能1」をクリックすると、機能のどれが呼ばれなかっ取得または"適用"ボタン(ボタンはハイライト表示されますが何もしません)。私は別の

<script> 
</script> 

で各機能を入れた場合でも、そのためmyFunction1()が正常に実行されますが、applyConfigs()はまだ(フォームが送信されていませんが、applyConfigs()機能が実行されていない一つの機能ごと、その後、機能を含む2スクリプト/スクリプトのセクションを持ちます)。いずれの場合もエラーメッセージはなく、実行されない関数だけです。

ここで何が起こっているのでしょうか?

My機能applyConfigs()はかなり大きいですが、ここで私はmyFunction1()

function showHideDiv(elementId,buttonId) { 
    if (document.getElementById) { 
     var element = document.getElementById(elementId); 
     var button = document.getElementById(buttonId); 
     if (element.style.display == 'none') { 
      element.style.display = 'block'; 
      button.value = "Hide Options"; 
      return false; 
     } else if (element.style.display == 'block') { 
      element.style.display = 'none'; 
      button.value = "Show Options"; 
      return false; 
     } 
    } 
} 
+0

私が見る最初のことは、セミコロンがあることです。あなたの関数呼び出しの後。削除してください。 –

+0

JavaScriptコードを教えてください。本当に便利です。 – talnicolas

+0

セミコロンが有効です(偶数ハンドラで複数のステートメントを使用できます) – colithium

答えて

0

入力タイプは、フォームを提出する提出と呼ばれる私の他の機能があります。あなたはそれを変更する必要があります:

+0

私はこの変更を試みましたが、まだ幸運はありません;-( – rh4games

0

適切な名前は大文字のCでonClickですが、それは問題ではありません。あなたのJavaScriptがエラーフリーであると仮定します...適用ボタンのonSubmitイベントを使用してみてください。私はそれがあなたが望むものだと思う。 onSubmitを使用すると、条件付きでフォームの提出をキャンセルすることもできます。

+0

私はonClickに変更しました。 – rh4games

関連する問題